diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/nest20.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.brendan/nest20.C | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest20.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest20.C new file mode 100644 index 000000000..1b2c9419a --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.brendan/nest20.C @@ -0,0 +1,30 @@ +// { dg-do assemble } +// GROUPS passed nested-classes +// This is the first line of file ||t5.C||. + +// This code initializing an unnamed union inside a class appears to +// be legal C++ input and compiles fine with AT&T cfront 3.0.1, but +// gcc 2.4.5 complains about multiple initializations of the same +// member. + +class Expr { +public: + enum Type { undefined, slong, ulong, ldouble }; + Expr(); + Expr(Type type, const Expr* initializer); +private: + Type type_; + union { + long slong_; + unsigned long ulong_; + long double ldouble_; + }; +}; + +// Construct an undefined expression. + +Expr::Expr() + : + type_(undefined), + slong_(-1) +{} |