https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118265
--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The trunk branch has been updated by Jason Merrill <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:26d3424ca5d9f47d7e0b6fcaf0fae48435a73442 commit r15-7339-g26d3424ca5d9f47d7e0b6fcaf0fae48435a73442 Author: A J Ryan Solutions Ltd <gcc.gnu....@ajryansolutions.co.uk> Date: Sun Feb 2 22:26:32 2025 +0000 c++: find A pack from B in <typename...A,Class<A>...B> [PR118265] For non-type parameter packs when unifying the arguments in unify_pack_expansion it iterates over the associated packs of a param so that when it recursively unifies the param with the arguments it knows which targs have been populated with parameter pack arguments that it can then collect up. This change adds a tree walk so that in the example above it reaches ...A and adds it to the associated packs for ...B and therefore knows it will have been set in targs in unify_pack_expansion and processes it as per other pack arguments. PR c++/118265 gcc/cp/ChangeLog: * pt.cc (find_parameter_packs_r) <case TEMPLATE_PARM_INDEX>: Walk into the type of a parameter pack. Signed-off-by: Adam J Ryan <gcc.gnu....@ajryansolutions.co.uk>