// { dg-do assemble } // GROUPS passed nested-classes // This is the first line of file ||t2.C||. // This code demonstrates what appears to be a bug with nested types. // In C++, nested typedefs are not supposed to be visible outside // their class scopes but they apparently are in gcc 2.4.5. This code // compiles fine in AT&T cfront 3.0.1, but will not compile with gcc. // If this class does not precede String, then the code will compile. class Another { public: typedef int Length; }; // If String does not define typedef int Length, then the code will // compile. class String { public: typedef int Length; // remove this and it will compile fine int foo(Length length) const; }; int String::foo(Length length) const { return length; } // File ||t2.C|| ends here.