reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | // RUN: %clang_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s #include <stdlib.h> void __attribute__((noinline)) foo(int *mem) { free(mem); } void __attribute__((noinline)) bar(int *mem) { mem[0] = 42; } int main() { int *mem = (int*)malloc(100); foo(mem); bar(mem); return 0; } // CHECK: WARNING: ThreadSanitizer: heap-use-after-free // CHECK: Write of size 4 at {{.*}} by main thread: // CHECK: #0 bar // CHECK: #1 main // CHECK: Previous write of size 8 at {{.*}} by main thread: // CHECK: #0 free // CHECK: #{{1|2}} foo // CHECK: #{{2|3}} main |