diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp b/clang/lib/Sema/SemaTemplateDeduction.cpp index a287319cc4f88..234dffd1dd6d4 100644 --- a/clang/lib/Sema/SemaTemplateDeduction.cpp +++ b/clang/lib/Sema/SemaTemplateDeduction.cpp @@ -6157,11 +6157,11 @@ FunctionDecl *Sema::getMoreConstrainedFunction(FunctionDecl *FD1, (isa(FD2))); FunctionDecl *F1 = FD1; - if (FunctionDecl *P = FD1->getTemplateInstantiationPattern(false)) + while (FunctionDecl *P = F1->getTemplateInstantiationPattern(false)) F1 = P; FunctionDecl *F2 = FD2; - if (FunctionDecl *P = FD2->getTemplateInstantiationPattern(false)) + while (FunctionDecl *P = F2->getTemplateInstantiationPattern(false)) F2 = P; llvm::SmallVector AC1, AC2;