|
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