diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/crash17.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.brendan/crash17.C | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash17.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash17.C new file mode 100644 index 000000000..ecbceabce --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash17.C @@ -0,0 +1,35 @@ +// { dg-do assemble } +// GROUPS passed old-abort +// +// This one creates +// +// gcc2: Internal compiler error: program cc1plus got fatal signal 11 +// +// when compiled with g++. +// The error goes away, if +// 1) int ClassInvariant() is not virtual or +// 2) GnObject has a virtual destructor or +// 3) GnWidget has no virtual destructor or +// 4) GnContracts has a virtual destructor +// + + +class GnContracts { + public: + virtual int ClassInvariant(); +// virtual ~GnContracts(); +}; + +class GnObject : public GnContracts { + public: +// virtual ~GnObject(); +}; + +class GnWidget : public GnObject { + public: + virtual ~GnWidget(); +}; + +class GnOptionGroup : public GnObject, public GnWidget {// { dg-warning "inaccessible" } +}; + |