[clang] b7894eb - [clang][Interp] Initialize remaining InlineDescriptor fields

Timm Bäder via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 20 01:04:29 PST 2023


Author: Timm Bäder
Date: 2023-01-20T10:04:16+01:00
New Revision: b7894ebf8439c0141614fbb8bfc1a27a0a67e946

URL: https://github.com/llvm/llvm-project/commit/b7894ebf8439c0141614fbb8bfc1a27a0a67e946
DIFF: https://github.com/llvm/llvm-project/commit/b7894ebf8439c0141614fbb8bfc1a27a0a67e946.diff

LOG: [clang][Interp] Initialize remaining InlineDescriptor fields

for local variables. Hoping this will please msan.

Added: 
    

Modified: 
    clang/lib/AST/Interp/EvalEmitter.cpp
    clang/lib/AST/Interp/InterpFrame.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/AST/Interp/EvalEmitter.cpp b/clang/lib/AST/Interp/EvalEmitter.cpp
index 7b6e5561d978a..3c1d48f09f9bf 100644
--- a/clang/lib/AST/Interp/EvalEmitter.cpp
+++ b/clang/lib/AST/Interp/EvalEmitter.cpp
@@ -60,6 +60,10 @@ Scope::Local EvalEmitter::createLocal(Descriptor *D) {
   Desc.Desc = D;
   Desc.Offset = sizeof(InlineDescriptor);
   Desc.IsActive = true;
+  Desc.IsBase = false;
+  Desc.IsMutable = false;
+  Desc.IsConst = false;
+  Desc.IsInitialized = false;
 
   // Register the local.
   unsigned Off = Locals.size();

diff  --git a/clang/lib/AST/Interp/InterpFrame.cpp b/clang/lib/AST/Interp/InterpFrame.cpp
index 19ac0bd5433a5..f6437771ccbed 100644
--- a/clang/lib/AST/Interp/InterpFrame.cpp
+++ b/clang/lib/AST/Interp/InterpFrame.cpp
@@ -40,6 +40,10 @@ InterpFrame::InterpFrame(InterpState &S, const Function *Func,
       ID->Desc = Local.Desc;
       ID->IsActive = true;
       ID->Offset = sizeof(InlineDescriptor);
+      ID->IsBase = false;
+      ID->IsMutable = false;
+      ID->IsConst = false;
+      ID->IsInitialized = false;
     }
   }
 }


        


More information about the cfe-commits mailing list