Commit 31d8a3ac by Jason Merrill

moved to dg

From-SVN: r44349
parent 50011802
// Test that 'extern template' suppresses instantiations.
// Special g++ Options: -g -O
// Ignore the 'ld returned 1' message from collect2.
// excess errors test - XFAIL *-*-*
template <class T> void f (T) { }
extern template void f (int);
template <class T> struct A {
void f ();
};
template <class T> void A<T>::f () { }
extern template struct A<int>;
// These functions must be defined in a single line, so that, even if
// constants or pointers are placed in the code section (for example,
// on the SH), we still get the same line numbers.
void test_f_int () { f(42); } // ERROR - not instantiated
void test_A_int_f () { A<int> a; a.f (); } // ERROR - not instantiated
void test_f_double () { f (2.0); } // gets bogus error
void test_A_double_f () { A<double> b; b.f (); } // gets bogus error
int main ()
{
test_f_int ();
test_A_int_f ();
test_f_double ();
test_A_double_f ();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment