// { dg-do compile } // Origin: Matt Austern // PR c++/7983: ICE typedef to typename as friend. template class smart_ptr2 { T* real_ptr; public: typedef typename T::subT td; // { dg-error "previous declaration" } friend class td; // { dg-error "typedef|not name a class" } };