From a5c691e9e18c0b36a7aefdd8e9908093196518a0 Mon Sep 17 00:00:00 2001 From: aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Tue, 3 Apr 2001 08:38:45 +0000 Subject: [PATCH] * g++.old-deja/g++.ext/instantiate1.C: Adjust to accommodate peculiarities of the SH. * g++.old-deja/g++.ext/instantiate2.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41045 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 7 +++++- .../g++.old-deja/g++.ext/instantiate1.C | 22 ++++++++++++++----- .../g++.old-deja/g++.ext/instantiate2.C | 15 +++++++++---- 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bd6039fb0311..c72d2def208b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. diff --git a/gcc/testsuite/g++.old-deja/g++.ext/instantiate1.C b/gcc/testsuite/g++.old-deja/g++.ext/instantiate1.C index 8d5457f5944c..8e0fbe073fd8 100644 --- a/gcc/testsuite/g++.old-deja/g++.ext/instantiate1.C +++ b/gcc/testsuite/g++.old-deja/g++.ext/instantiate1.C @@ -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 (); } diff --git a/gcc/testsuite/g++.old-deja/g++.ext/instantiate2.C b/gcc/testsuite/g++.old-deja/g++.ext/instantiate2.C index 0b3dc24ea4c4..9a783a14b63a 100644 --- a/gcc/testsuite/g++.old-deja/g++.ext/instantiate2.C +++ b/gcc/testsuite/g++.old-deja/g++.ext/instantiate2.C @@ -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 (); } -- GitLab