summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/torture/pr33572.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/torture/pr33572.C')
-rw-r--r--gcc/testsuite/g++.dg/torture/pr33572.C17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/torture/pr33572.C b/gcc/testsuite/g++.dg/torture/pr33572.C
new file mode 100644
index 000000000..91cd073fd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr33572.C
@@ -0,0 +1,17 @@
+// { dg-do run }
+#include <vector>
+#include <memory>
+
+struct Foo { virtual void f() {} };
+
+int main(int argc, char**)
+{
+ std::auto_ptr<Foo> foo;
+ if (argc >= 0) {
+ foo.reset(new Foo());
+ } else {
+ std::vector<int> v;
+ }
+ Foo* p = foo.release();
+ p->f();
+}