1 // { dg-do link } 2 // { dg-options "-O2" } 3 4 class Foo { 5 public: 6 // No out-of-class definition is provided for these class members. 7 // That's technically a violation of the standard, but no diagnostic 8 // is required, and, as a QOI issue, we should optimize away all 9 // references. 10 static const int erf = 0; 11 static const int foo = 1; 12 }; 13 one()14int one() 15 { 16 return Foo::foo; 17 } 18 two()19int two() 20 { 21 return Foo::foo + Foo::erf; 22 } 23 three(int x)24int three(int x) 25 { 26 return x ? Foo::erf : Foo::foo; 27 } 28 29 int i; 30 main()31int main () 32 { 33 one (); 34 two (); 35 three (i); 36 } 37