diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.jason/destruct3.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.jason/destruct3.C | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/destruct3.C b/gcc/testsuite/g++.old-deja/g++.jason/destruct3.C new file mode 100644 index 000000000..3dc287c74 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.jason/destruct3.C @@ -0,0 +1,45 @@ +// { dg-do assemble } +// { dg-options "-w" } +// PRMS Id: 4342 (second testcase) +// Bug: g++ still can't deal with ambiguous inheritance in destructor calls. + +struct ccUnwind +{ + ccUnwind (); + virtual ~ccUnwind (); +}; + +struct ccPersistent +{ + virtual void bar(); +}; + +struct ccImpExp : public ccPersistent, public ccUnwind +{}; + +struct ccTool : public ccImpExp +{}; + +struct ccScreenTool : public ccTool +{}; + +struct ccVTool : public ccScreenTool +{}; + +struct ccScreenObjRep : public ccUnwind +{}; + +struct ccScreenObj : public ccScreenObjRep +{}; + +struct ccVSTool : public ccImpExp, public ccUnwind +{}; + +struct ccSCCP : public ccVSTool +{}; + +void foo () +{ + ccSCCP* foo = new ccSCCP; + delete foo; +} |