aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2000-03-29 15:56:57 -0500
committerJason Merrill <jason@gcc.gnu.org>2000-03-29 15:56:57 -0500
commit8cb5e385d66a8b194bca83c97db3dc010d73470b (patch)
treed6507290bedd72bccaa39ba14d57c4a217db8959 /gcc
parent6ab1432e571edb8e208fdebbcf021f97b8426018 (diff)
downloadgcc-8cb5e385d66a8b194bca83c97db3dc010d73470b.zip
gcc-8cb5e385d66a8b194bca83c97db3dc010d73470b.tar.gz
gcc-8cb5e385d66a8b194bca83c97db3dc010d73470b.tar.bz2
up
From-SVN: r32818
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/badopt1.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/crash15.C43
2 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.other/badopt1.C b/gcc/testsuite/g++.old-deja/g++.other/badopt1.C
index 096770e..fbc4b12 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/badopt1.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/badopt1.C
@@ -1,6 +1,8 @@
// Based on a testcase by Bryan Weston <bryanw@bluemoon.sps.mot.com>
// egcs 1.1 fails to increment count
+// Special g++ Options: -O2
+
#include <cstdlib>
struct Base { Base() {} }; // removing the constructor fixes the problem
diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash15.C b/gcc/testsuite/g++.old-deja/g++.other/crash15.C
new file mode 100644
index 0000000..f863350
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.other/crash15.C
@@ -0,0 +1,43 @@
+// g++ crashed because we unsaved the TARGET_EXPR for the return value
+// for get_allocator without first expanding it, because it was part of the
+// cleanup for the temporary string.
+
+// Derived from libstdc++ v3 code.
+
+// Special g++ Options: -O2
+// Build don't link:
+
+class AA {};
+
+void fee (const AA&);
+
+class basic_string
+{
+public:
+ basic_string(const char*);
+
+ ~basic_string()
+ { fee (this->get_allocator()); }
+
+ AA get_allocator();
+};
+
+class failure
+{
+public:
+ failure(const basic_string& __str);
+};
+
+class foo
+{
+public:
+ foo(int x)
+ {
+ throw failure ("");
+ }
+};
+
+void test05()
+{
+ foo ofs(0);
+}