[asan] Revert r201402, r201404.
[blocksruntime.git] / lib / msan / lit_tests / cxa_atexit.cc
blobf3641aadce03b5faff2b5bb0b32a57ea33cfc343
1 // RUN: %clangxx_msan -m64 -O0 %s -o %t && %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;