Home | History | Annotate | Download | only in TestCases
      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.cc --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.cc --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.cc --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.cc --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   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