// Build don't link: // 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) {}