aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaInit.cpp
diff options
context:
space:
mode:
authorKrystian Stasiowski <sdkrystian@gmail.com>2024-11-01 14:15:33 -0600
committerGitHub <noreply@github.com>2024-11-01 16:15:33 -0400
commitb24650e814e55d90acfc40acf045456c98f32b9c (patch)
tree31c276991f2a1c7590efecaf66560e541b7cac43 /clang/lib/Sema/SemaInit.cpp
parent308c00749ddb76b2e77934e986001b7fd4ad5cdc (diff)
downloadllvm-b24650e814e55d90acfc40acf045456c98f32b9c.zip
llvm-b24650e814e55d90acfc40acf045456c98f32b9c.tar.gz
llvm-b24650e814e55d90acfc40acf045456c98f32b9c.tar.bz2
Reapply "[Clang][Sema] Always use latest redeclaration of primary template" (#114569)
This patch reapplies #114258, fixing an infinite recursion bug in `ASTImporter` that occurs when importing the primary template of a class template specialization when the latest redeclaration of that template is a friend declaration in the primary template.
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r--clang/lib/Sema/SemaInit.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index 573e90a..e2a59f6 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -9954,7 +9954,7 @@ QualType Sema::DeduceTemplateSpecializationFromInitializer(
auto SynthesizeAggrGuide = [&](InitListExpr *ListInit) {
auto *Pattern = Template;
while (Pattern->getInstantiatedFromMemberTemplate()) {
- if (Pattern->hasMemberSpecialization())
+ if (Pattern->isMemberSpecialization())
break;
Pattern = Pattern->getInstantiatedFromMemberTemplate();
}