arphaman added inline comments.

================
Comment at: lib/AST/DeclCXX.cpp:1350
       while (auto *NewCTD = CTD->getInstantiatedFromMemberTemplate()) {
-        if (NewCTD->isMemberSpecialization())
+        if (NewCTD->isMemberSpecialization() ||
+            !NewCTD->isThisDeclarationADefinition())
----------------
rsmith wrote:
> 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.
Yes, you're right. Thanks for pointing me in the right direction!


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