1 // { dg-do assemble  }
2 // PRMS Id: 4375
3 // Bug: g++ fails to keep track of nested typedefs properly.
4 
5 class A {
6 public:
7   typedef const char * Ptr;
8   Ptr s;
9   Ptr get_string();
10   A(Ptr string); // { s = string; };
11 };
12 
13 class B {
14 public:
15   typedef A * Ptr;
16   Ptr a;
17   Ptr get_A();
18   B(Ptr a_ptr);
19 };
20 
A(Ptr string)21 A::A(Ptr string) {		// { dg-bogus "" }
22   s = string;			// { dg-bogus "" }
23 }
24 
main()25 int main() {
26   A a("testing");
27   A *a_ptr;
28   B b(&a);
29   a_ptr = b.get_A();
30 }
31