diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.law/visibility28.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.law/visibility28.C | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility28.C b/gcc/testsuite/g++.old-deja/g++.law/visibility28.C new file mode 100644 index 000000000..a7141ae5e --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.law/visibility28.C @@ -0,0 +1,24 @@ +// { dg-do assemble } +// GROUPS passed visibility +extern "C" int printf( const char *, ...); + +class B { +public: + B() { } + virtual ~B() { printf( "B::~B\n"); } +}; + +class D : public B { +public: + virtual ~D() { printf( "D::~D\n"); } + void operator = ( int i) { this->~B(); } +}; + +int +main() +{ + D * pd = new D; + B * pb = pd; + delete pb; + return 0; +} |