================
@@ -5873,8 +5873,14 @@ ASTContext::getSubstBuiltinTemplatePack(const
TemplateArgument &ArgPack) {
QualType Canon;
TemplateArgument CanonArgPack = getCanonicalTemplateArgument(ArgPack);
- if (!CanonArgPack.structurallyEquals(ArgPack))
+ if (!CanonArgPack.structurallyEquals(ArgPack)) {
Canon = getSubstBuiltinTemplatePack(CanonArgPack);
+ // Refresh InsertPos, in case the recursive call above caused rehashing,
+ // which would invalidate the bucket pointer.
+ if (auto *T =
+ SubstBuiltinTemplatePackTypes.FindNodeOrInsertPos(ID, InsertPos))
+ return QualType(T, 0);
----------------
alexfh wrote:
Thanks for the suggestion! Done.
https://github.com/llvm/llvm-project/pull/160970
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits