rsmith added inline comments.
================ Comment at: lib/AST/DeclCXX.cpp:1350 while (auto *NewCTD = CTD->getInstantiatedFromMemberTemplate()) { - if (NewCTD->isMemberSpecialization()) + if (NewCTD->isMemberSpecialization() || + !NewCTD->isThisDeclarationADefinition()) ---------------- We should be stopping at `A<int>::Inner` because it's a member specialization; whether the primary template had a declaration or a definition is irrelevant. It looks like the problem is that the member specialization check is checking the wrong declaration; we should be checking `CTD` not `NewCTD` here. Repository: rL LLVM https://reviews.llvm.org/D25942 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits