1// { dg-do link } 2// { dg-options "-O2" } 3 4class Foo { 5public: 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 14int one() 15{ 16 return Foo::foo; 17} 18 19int two() 20{ 21 return Foo::foo + Foo::erf; 22} 23 24int three(int x) 25{ 26 return x ? Foo::erf : Foo::foo; 27} 28 29int i; 30 31int main () 32{ 33 one (); 34 two (); 35 three (i); 36} 37