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