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 27 28 29 30 31 | // Test for the following situation: // (1) global A is constructed. // (2) exit() is called during construction of global B. // (3) destructor of A reads uninitialized global C from another module. // We do *not* want to report init-order bug in this case. // RUN: %clangxx_asan -O0 %s %p/Helpers/init-order-atexit-extra.cpp -o %t // RUN: %env_asan_opts=strict_init_order=true not %run %t 2>&1 | FileCheck %s #include <stdio.h> #include <stdlib.h> void AccessC(); class A { public: A() { } ~A() { AccessC(); printf("PASSED\n"); } // CHECK-NOT: AddressSanitizer // CHECK: PASSED }; A a; class B { public: B() { exit(1); } ~B() { } }; B b; |