new
authorJason Merrill <jason@gcc.gnu.org>
Fri, 2 Jun 2000 17:49:26 +0000 (13:49 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Fri, 2 Jun 2000 17:49:26 +0000 (13:49 -0400)
From-SVN: r34361

gcc/testsuite/g++.old-deja/g++.ext/return1.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/goto3.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/infinite1.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.old-deja/g++.ext/return1.C b/gcc/testsuite/g++.old-deja/g++.ext/return1.C
new file mode 100644 (file)
index 0000000..7466bfb
--- /dev/null
@@ -0,0 +1,18 @@
+// Test that the named return value extension works when passed as a reference.
+// Origin: Jason Merrill <jason@redhat.com>
+
+void f (int &i)
+{
+  i = 42;
+}
+
+int g () return r
+{
+  f (r);
+}
+
+int main ()
+{
+  int i = g ();
+  return (i != 42);
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.other/goto3.C b/gcc/testsuite/g++.old-deja/g++.other/goto3.C
new file mode 100644 (file)
index 0000000..fefb4da
--- /dev/null
@@ -0,0 +1,20 @@
+// Testcase for various invalid gotos.
+// Origin: Jason Merrill <jason@redhat.com>
+// Build don't link:
+
+void f ()
+{
+  goto foo1;                    // ERROR - jumps
+  try { foo1:; } catch (...) { } // ERROR - into try
+  goto foo2;                    // ERROR - jumps
+  try { } catch (...) { foo2:; } // ERROR - into catch
+  goto foo3;                    // ERROR - jumps
+  { int i=2; foo3:; }           // ERROR - past init
+
+  try { foo4:; } catch (...) { } // ERROR - 
+  goto foo4;                    // ERROR - 
+  try { } catch (...) { foo5:; } // ERROR - 
+  goto foo5;                    // ERROR - 
+  { int i=2; foo6:; }           // ERROR - 
+  goto foo6;                    // ERROR - 
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/infinite1.C b/gcc/testsuite/g++.old-deja/g++.pt/infinite1.C
new file mode 100644 (file)
index 0000000..90a2b75
--- /dev/null
@@ -0,0 +1,12 @@
+// Test for catching infinitely recursive instantiations.
+// Origin: Jason Merrill <jason@redhat.com>
+
+template <int i> void f()
+{
+  f<i+1>();                    // ERROR - excessive recursion
+}
+
+int main()
+{
+  f<0>();                      // ERROR - starting here
+}