From 1a7a342d99f8faaee26b0c897e48c5b2363a4ae5 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Thu, 29 Oct 1998 16:23:53 -0500 Subject: [PATCH] new From-SVN: r23435 --- gcc/testsuite/g++.old-deja/g++.other/loop1.C | 30 +++++++++++++++++++ gcc/testsuite/g++.old-deja/g++.other/union1.C | 16 ++++++++++ 2 files changed, 46 insertions(+) create mode 100644 gcc/testsuite/g++.old-deja/g++.other/loop1.C create mode 100644 gcc/testsuite/g++.old-deja/g++.other/union1.C 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 index 00000000000..3380dd4d74d --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/loop1.C @@ -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 index 00000000000..6573b4d055f --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/union1.C @@ -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 +};