rsmith added inline comments. ================ Comment at: lib/AST/Decl.cpp:1089 @@ -1086,10 +1088,3 @@ if (const FunctionDecl *fn = dyn_cast<FunctionDecl>(ND)) { - // If the function is a specialization of a template with an - // explicit visibility attribute, use that. - if (FunctionTemplateSpecializationInfo *templateInfo - = fn->getTemplateSpecializationInfo()) - return getVisibilityOf(templateInfo->getTemplate()->getTemplatedDecl(), - kind); - - // If the function is a member of a specialization of a class template + // If the function is a member of a specialization of a some template // and the corresponding decl has explicit visibility, use that. ---------------- typo "of a some"
================ Comment at: lib/AST/DeclCXX.cpp:1264-1269 @@ -1263,7 +1263,8 @@ if (auto *CTD = From.dyn_cast<ClassTemplateDecl *>()) { - while (auto *NewCTD = CTD->getInstantiatedFromMemberTemplate()) { + auto *NewCTD = CTD; + do { + CTD = NewCTD; if (NewCTD->isMemberSpecialization()) break; - CTD = NewCTD; - } + } while ((NewCTD = CTD->getInstantiatedFromMemberTemplate())); return CTD->getTemplatedDecl()->getDefinition(); ---------------- This loop structure is not very clear. How about: while (!CTD->isMemberSpecialization()) { auto *NewCTD = CTD->getInstantiatedFromMemberTemplate(); if (!NewCTD) break; CTD = NewCTD; } ... or while (auto *FromCTD = CTD->isMemberSpecialization() ? nullptr : CTD->getInstantiatedFromMemberTemplate()) CTD = FromCTD; Repository: rL LLVM http://reviews.llvm.org/D13419 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits