aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2001-04-03 08:38:45 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2001-04-03 08:38:45 +0000
commit41dc48164709a719eb1ee4191afa302fe557163c (patch)
treed088936a3a6c025b49454fa9411ddc35bcc178bb
parent47a15d4fd6222ae1ecadd9ae822c4d41eff57e84 (diff)
downloadgcc-41dc48164709a719eb1ee4191afa302fe557163c.zip
gcc-41dc48164709a719eb1ee4191afa302fe557163c.tar.gz
gcc-41dc48164709a719eb1ee4191afa302fe557163c.tar.bz2
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
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ext/instantiate1.C22
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ext/instantiate2.C15
3 files changed, 33 insertions, 11 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bd6039f..c72d2de 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 8d5457f..8e0fbe0 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 0b3dc24..9a783a1 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 ();
}