OSDN Git Service

up
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.other / crash15.C
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 (file)
index 0000000..f863350
--- /dev/null
@@ -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);
+}