blob: 1188766b6020c16363e958e98d220f8503c709f5 [file] [log] [blame]
Stephen Hines2d1fdb22014-05-28 23:58:16 -07001// 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
Stephen Hines6a211c52014-07-21 00:49:56 -07007// RUN: %clangxx_asan -O0 %s %p/Helpers/initialization-constexpr-extra.cc --std=c++11 -o %t
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -07008// RUN: env ASAN_OPTIONS=$ASAN_OPTIONS:check_initialization_order=true %run %t 2>&1
Stephen Hines6a211c52014-07-21 00:49:56 -07009// RUN: %clangxx_asan -O1 %s %p/Helpers/initialization-constexpr-extra.cc --std=c++11 -o %t
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070010// RUN: env ASAN_OPTIONS=$ASAN_OPTIONS:check_initialization_order=true %run %t 2>&1
Stephen Hines6a211c52014-07-21 00:49:56 -070011// RUN: %clangxx_asan -O2 %s %p/Helpers/initialization-constexpr-extra.cc --std=c++11 -o %t
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070012// RUN: env ASAN_OPTIONS=$ASAN_OPTIONS:check_initialization_order=true %run %t 2>&1
Stephen Hines6a211c52014-07-21 00:49:56 -070013// RUN: %clangxx_asan -O3 %s %p/Helpers/initialization-constexpr-extra.cc --std=c++11 -o %t
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070014// RUN: env ASAN_OPTIONS=$ASAN_OPTIONS:check_initialization_order=true %run %t 2>&1
Stephen Hines2d1fdb22014-05-28 23:58:16 -070015
16class Integer {
17 private:
18 int value;
19
20 public:
21 constexpr Integer(int x = 0) : value(x) {}
22 int getValue() {return value;}
23};
24Integer coolestInteger(42);
25int getCoolestInteger() { return coolestInteger.getValue(); }
26
27int main() { return 0; }