|
1 | 1 | // A collection of various initializers which shouldn't trip up initialization
|
2 | 2 | // order checking. If successful, this will just return 0.
|
3 | 3 |
|
4 |
| -// RUN: %clangxx_asan -O0 %s %p/Helpers/initialization-nobug-extra.cpp -o %t |
5 |
| -// RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1 |
6 |
| -// RUN: %clangxx_asan -O1 %s %p/Helpers/initialization-nobug-extra.cpp -o %t |
7 |
| -// RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1 |
8 |
| -// RUN: %clangxx_asan -O2 %s %p/Helpers/initialization-nobug-extra.cpp -o %t |
9 |
| -// RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1 |
10 |
| -// RUN: %clangxx_asan -O3 %s %p/Helpers/initialization-nobug-extra.cpp -o %t |
11 |
| -// RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1 |
| 4 | +// RUN: %clangxx_asan -O0 %s %p/Helpers/initialization-nobug-extra.cpp -o %t && %env_asan_opts=check_initialization_order=true:report_globals=3 %run %t 2>&1 | FileCheck %s --implicit-check-not "DynInit" |
| 5 | +// RUN: %clangxx_asan -O1 %s %p/Helpers/initialization-nobug-extra.cpp -o %t && %env_asan_opts=check_initialization_order=true:report_globals=3 %run %t 2>&1 | FileCheck %s --implicit-check-not "DynInit" |
| 6 | +// RUN: %clangxx_asan -O2 %s %p/Helpers/initialization-nobug-extra.cpp -o %t && %env_asan_opts=check_initialization_order=true:report_globals=3 %run %t 2>&1 | FileCheck %s --implicit-check-not "DynInit" |
| 7 | +// RUN: %clangxx_asan -O3 %s %p/Helpers/initialization-nobug-extra.cpp -o %t && %env_asan_opts=check_initialization_order=true:report_globals=3 %run %t 2>&1 | FileCheck %s --implicit-check-not "DynInit" |
12 | 8 |
|
13 | 9 | // Simple access:
|
14 | 10 | // Make sure that accessing a global in the same TU is safe
|
15 | 11 |
|
16 | 12 | bool condition = true;
|
17 |
| -int initializeSameTU() { |
| 13 | +__attribute__((noinline, weak)) int initializeSameTU() { |
18 | 14 | return condition ? 0x2a : 052;
|
19 | 15 | }
|
20 | 16 | int sameTU = initializeSameTU();
|
@@ -46,3 +42,6 @@ StructWithDtor struct_with_dtor;
|
46 | 42 | int getStructWithDtorValue() { return struct_with_dtor.value; }
|
47 | 43 |
|
48 | 44 | int main() { return 0; }
|
| 45 | + |
| 46 | +// CHECK: DynInitPoison module: {{.*}}initialization-nobug.cpp |
| 47 | +// CHECK: DynInitPoison module: {{.*}}initialization-nobug-extra.cpp |
0 commit comments