diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/torture/pr33572.C')
-rw-r--r-- | gcc/testsuite/g++.dg/torture/pr33572.C | 17 |
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(); +} |