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

Reply via email to