37 lines
539 B
C
37 lines
539 B
C
// { 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);
|
|
}
|