blob: e62382781d106bd7569bd88c1ea8864163b24272 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
// { 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.
|