[ASan/Win] Add a comment about DCL-using-static vs threads
[blocksruntime.git] / test / msan / cxa_atexit.cc
blob0aa36ecee0117d10d1a49269b54d9aca21d6fd17
1 // RUN: %clangxx_msan -m64 -O0 %s -o %t && %run %t %p
3 // PR17377: C++ module destructors get stale argument shadow.
5 #include <stdio.h>
6 #include <stdlib.h>
7 class A {
8 public:
9 // This destructor get stale argument shadow left from the call to f().
10 ~A() {
11 if (this)
12 exit(0);
16 A a;
18 __attribute__((noinline))
19 void f(long x) {
22 int main(void) {
23 long x;
24 long * volatile p = &x;
25 // This call poisons TLS shadow for the first function argument.
26 f(*p);
27 return 0;