| // { dg-do assemble } | |
| template < class T > class A | |
| { | |
| public: | |
| typedef typename T::myT anotherT; // { dg-error "" } undefined type | |
| anotherT t; | |
| A() { } | |
| A(anotherT _t) { | |
| t=_t; | |
| } | |
| anotherT getT() { | |
| return t; | |
| } | |
| }; | |
| class B : public A< B > // { dg-message "" } forward declaration | |
| { | |
| public: | |
| typedef int myT; | |
| }; | |
| int main() { | |
| B b; | |
| } |