hokein marked an inline comment as done. hokein added inline comments.
================ Comment at: clang/test/SemaCXX/invalid-template-base-specifier.cpp:6 +template <typename T> +struct Crash : decltype(Foo(T())) { // expected-error {{no matching function for call to 'Foo'}} + Crash(){}; ---------------- to explain what's happening here: - when parsing this primary template class decl, we'll keep this base specifier (whose type is a normal dependent type, `DecltypeType 'decltype(Foo(T()))' dependent`) - later clang instantiates `Crash<int>` (creating a ClassTemplateSpecializationDecl), which will subst the base specifier with an instantiated base specifier (the type is `DecltypeType decltype(<recovery-expr>(Foo, int()))` ), and the instantiated specifier is passed the sanity checks (`CheckBaseSpecifier`), and gets attached to the ClassTemplateSpecializationDecl. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82086/new/ https://reviews.llvm.org/D82086 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits