ramosian-glider / memory-sanitizer

Automatically exported from code.google.com/p/memory-sanitizer
0 stars 0 forks source link

False negative with stack slot reuse #87

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
int main() {
  for (int i = 0; i < 10000; ++i) {
    int a;
    int * volatile p = &a;
    if (i < 9000)
      *p = i;
    else
      return *p;
  }
  return 0;
}

Local variable "a" should be poisoned every time it goes into scope (on 
llvm.lifetime.start?).

Original issue reported on code.google.com by euge...@chromium.org on 2 Mar 2015 at 11:46

GoogleCodeExporter commented 9 years ago
An unfinished patchset.
It fixes this issue, but runs into another - lifetime intrinsics break debug 
location for the return instruction in some cases.

Original comment by euge...@google.com on 6 Apr 2015 at 8:18

Attachments:

GoogleCodeExporter commented 9 years ago
Adding Project:MemorySanitizer as part of GitHub migration.

Original comment by gli...@google.com on 30 Jul 2015 at 9:22