1 // { dg-do run }
2 // { dg-options "-O3" }
3 
4 extern "C" void abort (void);
5 
6 struct X {
7     bool init;
fooX8     void foo() { if (!init) init = true; }
barX9     void bar() { foo();                  }
10 
11 };
12 
13 typedef unsigned long long int uint64_t;
14 uint64_t mask1, mask2;
15 
calc()16 uint64_t calc() {
17   return mask1 & mask2;
18 }
19 
main()20 int main()
21 {
22   mask1 = 0x00000000FFFFFFFFull;
23   mask2 = 0x000000000000FFFFull;
24   uint64_t value = calc();
25 
26   X().bar();
27 
28   if(value != calc())
29     abort ();
30   return 0;
31 }
32 
33