instantiate1.C: Adjust to accommodate peculiarities of the SH.

* g++.old-deja/g++.ext/instantiate1.C: Adjust to accommodate
peculiarities of the SH.
* g++.old-deja/g++.ext/instantiate2.C: Likewise.

From-SVN: r41045
This commit is contained in:
Alexandre Oliva 2001-04-03 08:38:45 +00:00 committed by Alexandre Oliva
parent 47a15d4fd6
commit 41dc481647
3 changed files with 33 additions and 11 deletions

View File

@ -1,3 +1,9 @@
2001-04-03 Alexandre Oliva <aoliva@redhat.com>
* g++.old-deja/g++.ext/instantiate1.C: Adjust to accommodate
peculiarities of the SH.
* g++.old-deja/g++.ext/instantiate2.C: Likewise.
2001-04-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* gcc.c-torture/execute/ieee/fp-cmp-1.c: Renamed nan to dnan.
@ -210,7 +216,6 @@
* g++.old-deja/g++.pt/overload15.C: New test to stress overloaded
templatized constructors.
>>>>>>> 1.1119
2001-02-24 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* gcc.c-torture/execute/20010224-1.c: New test.

View File

@ -13,12 +13,22 @@ template <class T> struct A {
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 ()
{
f (42); // ERROR - not instantiated
A<int> a;
a.f (); // ERROR - not instantiated
f (2.0); // gets bogus error
A<double> b;
b.f (); // gets bogus error
test_f_int ();
test_A_int_f ();
test_f_double ();
test_A_double_f ();
}

View File

@ -10,10 +10,17 @@ template <class T> struct A {
template <class T> T A<T>::t = 0;
static 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_int() { A<int>::t = 42; } // gets bogus error
void test_char() { A<char>::t = 42; } // ERROR - not instantiated XFAIL *-*-irix*
// Irix's default linker does not produce line numbers so XFAIL it.
int main ()
{
A<int>::t = 42; // gets bogus error
A<char>::t = 42; // ERROR - not instantiated XFAIL mips*-*-*
// Irix's default linker does not
// produce line numbers so XFAIL it.
test_int ();
test_char ();
}