vitalybuka added inline comments.

================
Comment at: clang/lib/CodeGen/CodeGenFunction.h:935
     SmallVector<const LabelDecl*, 4> Labels;
+    SmallVector<const llvm::CallInst *, 4> LifetimeStartMarkers;
     LexicalScope *ParentScope;
----------------
LifetimeStartMarkers -> BypassedLifetimeStartMarkers
and below

if I read this correctly this is not any start marker


================
Comment at: clang/test/CodeGen/lifetime2.c:42
+    // O2: @llvm.lifetime.start.p0i8(i64 1
     bar(&x, 1);
+    // O2: @llvm.lifetime.end.p0i8(i64 1
----------------
It assume this will break Msan 
Transforms/Instrumentation/MemorySanitizer.cpp:1298 as it assume variable is 
not initialized on start

```
void goto_bypass(void) {
  {
    char x;
  l1:
    bar(&x, 1);
   if (x)
     goto l1
  }
  goto l1;
}
```


================
Comment at: clang/test/CodeGen/lifetime2.c:78
     break;
   case 2:
     bar(&x, 1);
----------------
Please check for lifetime markers, I assume case 2 will have a new one


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D129448/new/

https://reviews.llvm.org/D129448

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to