https://github.com/jcsxky updated https://github.com/llvm/llvm-project/pull/78400
>From c3856543fd56ec33bab6bcdcd3d833c0e19f58f9 Mon Sep 17 00:00:00 2001 From: huqizhi <huqi...@feysh.com> Date: Wed, 17 Jan 2024 14:16:34 +0800 Subject: [PATCH] fix --- clang/lib/Sema/SemaTemplateInstantiate.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/clang/lib/Sema/SemaTemplateInstantiate.cpp b/clang/lib/Sema/SemaTemplateInstantiate.cpp index fc80515b45e35b4..262fe71545a2a61 100644 --- a/clang/lib/Sema/SemaTemplateInstantiate.cpp +++ b/clang/lib/Sema/SemaTemplateInstantiate.cpp @@ -3064,10 +3064,18 @@ bool Sema::SubstDefaultArgument( if (addInstantiatedParametersToScope(FD, PatternFD, *LIS, TemplateArgs)) return true; } + auto NewTemplateArgs = TemplateArgs; + if (FD->isOutOfLine()) { + auto *CurrentTemplateArgumentList = TemplateArgumentList::CreateCopy( + getASTContext(), TemplateArgs.getInnermost()); + NewTemplateArgs = getTemplateInstantiationArgs( + FD, FD->getDeclContext(), true, CurrentTemplateArgumentList, true, + nullptr, false, false); + } runWithSufficientStackSpace(Loc, [&] { - Result = SubstInitializer(PatternExpr, TemplateArgs, - /*DirectInit*/false); + Result = SubstInitializer(PatternExpr, NewTemplateArgs, + /*DirectInit*/ false); }); } if (Result.isInvalid()) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits