]> gcc.gnu.org Git - gcc.git/commitdiff
new
authorJason Merrill <jason@gcc.gnu.org>
Thu, 29 Oct 1998 21:23:53 +0000 (16:23 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Thu, 29 Oct 1998 21:23:53 +0000 (16:23 -0500)
From-SVN: r23435

gcc/testsuite/g++.old-deja/g++.other/loop1.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/union1.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.old-deja/g++.other/loop1.C b/gcc/testsuite/g++.old-deja/g++.other/loop1.C
new file mode 100644 (file)
index 0000000..3380dd4
--- /dev/null
@@ -0,0 +1,30 @@
+// Test for bad loop optimization of goto fixups.
+// Special g++ Options: -O2
+
+typedef bool (*ftype) ();
+
+int c, d;
+struct A {
+  A() { ++c; }
+  A(const A&) { ++c; }
+  ~A() { ++d; }
+};
+
+void f (ftype func)
+{
+  A a;
+  do {
+    if ((*func)()) return;
+  } while (true);
+}
+
+bool test ()
+{
+  return true;
+}
+
+main ()
+{
+  f (test);
+  return (c != d);
+}
diff --git a/gcc/testsuite/g++.old-deja/g++.other/union1.C b/gcc/testsuite/g++.old-deja/g++.other/union1.C
new file mode 100644 (file)
index 0000000..6573b4d
--- /dev/null
@@ -0,0 +1,16 @@
+// Build don't link:
+
+class A
+{
+  private:
+    int myInt;
+
+  public:
+    A& operator = (int right) {myInt = right; return *this;}
+};
+
+union B
+{
+    char f1;
+    A    f2;   // gets bogus error - non-copy assignment op is OK
+};
This page took 0.06782 seconds and 5 git commands to generate.