[clang] [Clang] Fix handling of pack indexing types in constraints of redeclaration (PR #139057)
Younan Zhang via cfe-commits
cfe-commits at lists.llvm.org
Thu May 8 04:11:34 PDT 2025
================
@@ -2060,14 +2064,17 @@ TemplateName TemplateInstantiator::TransformTemplateName(
return Arg.getAsTemplate();
}
- auto [AssociatedDecl, Final] =
+ auto [AssociatedDecl, Final, ArgumentsAreInjectedTemplateParams] =
TemplateArgs.getAssociatedDecl(TTP->getDepth());
UnsignedOrNone PackIndex = std::nullopt;
if (TTP->isParameterPack()) {
assert(Arg.getKind() == TemplateArgument::Pack &&
"Missing argument pack");
- if (!getSema().ArgPackSubstIndex) {
+ if (ArgumentsAreInjectedTemplateParams)
+ Arg = getTemplateArgumentPackPatternForRewrite(Arg);
----------------
zyn0217 wrote:
maybe it needs a better name than `getTemplateArgumentPackPatternForRewrite` because it's extended to handle injected template arguments.
How about `getTemplateArgumentPackPattern`?
https://github.com/llvm/llvm-project/pull/139057
More information about the cfe-commits
mailing list