Index: lib/Sema/SemaDecl.cpp =================================================================== --- lib/Sema/SemaDecl.cpp +++ lib/Sema/SemaDecl.cpp @@ -150,7 +150,7 @@ if (!TST || !TST->isDependentType()) continue; auto *TD = TST->getTemplateName().getAsTemplateDecl(); - if (!TD) + if (!TD || !TD->getTemplatedDecl()) continue; auto *BasePrimaryTemplate = cast(TD->getTemplatedDecl()); // FIXME: Allow lookup into non-dependent bases of dependent bases, possibly Index: test/SemaTemplate/ms-lookup-template-base-classes.cpp =================================================================== --- test/SemaTemplate/ms-lookup-template-base-classes.cpp +++ test/SemaTemplate/ms-lookup-template-base-classes.cpp @@ -460,3 +460,19 @@ int x = f(); }; } + +namespace PR20716 { +template +struct A +{ + void foo() {} +}; + +template