1 | // Constexpr: |
2 | // We need to check that a global variable initialized with a constexpr |
3 | // constructor can be accessed during dynamic initialization (as a constexpr |
4 | // constructor implies that it was initialized during constant initialization, |
5 | // not dynamic initialization). |
6 | |
7 | // RUN: %clangxx_asan -O0 %s %p/Helpers/initialization-constexpr-extra.cpp --std=c++11 -o %t |
8 | // RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1 |
9 | // RUN: %clangxx_asan -O1 %s %p/Helpers/initialization-constexpr-extra.cpp --std=c++11 -o %t |
10 | // RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1 |
11 | // RUN: %clangxx_asan -O2 %s %p/Helpers/initialization-constexpr-extra.cpp --std=c++11 -o %t |
12 | // RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1 |
13 | // RUN: %clangxx_asan -O3 %s %p/Helpers/initialization-constexpr-extra.cpp --std=c++11 -o %t |
14 | // RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1 |
15 | |
16 | class Integer { |
17 | private: |
18 | int value; |
19 | |
20 | public: |
21 | explicit constexpr Integer(int x = 0) : value(x) {} |
22 | int getValue() {return value;} |
23 | }; |
24 | Integer coolestInteger(42); |
25 | int getCoolestInteger() { return coolestInteger.getValue(); } |
26 | |
27 | int main() { return 0; } |
28 | |