namespace A { inline namespace __1 { template class allocator; template > class list; template class __list_iterator { //template friend class list; // causes another crash in ASTDeclReader::attachPreviousDecl template friend class list; }; template class __list_imp {}; template class list : __list_imp<_Tp, _Alloc> { public: list() {} }; template void f(list<_Tp>); } }