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