vague1.C   [plain text]


// Test that we don't emit unneeded copies of static data member template
// instantiations.

// Disable debug info so we don't get confused by the symbol name there.
// The test fails on hppa*-*-hpux* because the symbol _ZN1AIiE1tE is imported.
// { dg-options "-g0" }
// { dg-final { if { [istarget hppa*-*-hpux*] } { return } } }
// { dg-final { scan-assembler-not "_ZN1AIiE1tE" } }

template <class T> struct A {
  static const T t = 0;
};

template <class T> const T A<T>::t;

int i;
int main ()
{
  i = A<int>::t;		// Should just use the value
}