This reproduces back to almost the beginning of time. Clang 2.6.0 debug build fails a different assertion: https://godbolt.org/z/4fsxs6zP6
clang: warning: argument unused during compilation: '-gdwarf-4'
<source>:7:27: error: 'Node' does not name a tag member in the specified scope
friend class Vector<U>::Node;
~~~~~~~~~~~^
clang-cc: /home/tonik/llvm-project/llvm/tools/clang/lib/AST/DeclBase.cpp:386: void clang::Decl::CheckAccessDeclContext() const: Assertion `(Access != AS_none || isa<TranslationUnitDecl>(this) || !isa<CXXRecordDecl>(getDeclContext())) && "Access specifier is AS_none inside a record decl"' failed.
Stack dump: [...]
Clang 2.7.0 and 2.8.0 are clean. Clang 2.9.0 fails with the same "Declaration context must already be complete!" assertion as Clang trunk (the rising Clang 18).
https://godbolt.org/z/6YE6PxMsq
Clang fails an internal assertion.
This reproduces back to almost the beginning of time. Clang 2.6.0 debug build fails a different assertion: https://godbolt.org/z/4fsxs6zP6
Clang 2.7.0 and 2.8.0 are clean. Clang 2.9.0 fails with the same "Declaration context must already be complete!" assertion as Clang trunk (the rising Clang 18).