// { dg-do link } // { dg-options "-O2" } class Foo { public: // No out-of-class definition is provided for these class members. // That's technically a violation of the standard, but no diagnostic // is required, and, as a QOI issue, we should optimize away all // references. static const int erf = 0; static const int foo = 1; }; int one() { return Foo::foo; } int two() { return Foo::foo + Foo::erf; } int three(int x) { return x ? Foo::erf : Foo::foo; } int i; int main () { one (); two (); three (i); }