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