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