https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113405
--- Comment #5 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Nathaniel Shead <nsh...@gcc.gnu.org>: https://gcc.gnu.org/g:6ff54cc0be8dfa9d9bd5922ec65e86c9eb644711 commit r14-8408-g6ff54cc0be8dfa9d9bd5922ec65e86c9eb644711 Author: Nathaniel Shead <nathanielosh...@gmail.com> Date: Fri Jan 19 22:24:18 2024 +1100 c++: Handle partial specialisations in GMF [PR113405] Currently, when exporting names from the GMF, or within header modules, for a set of constrained partial specialisations we only emit the first one. This is because the 'type_specialization' list only includes a single specialization per template+argument list; constraints are not considered here. The existing code uses a separate 'partial_specializations' list to track this instead, but currently it's only used for declarations in the module purview. This patch makes use of this list for all declarations. PR c++/113405 gcc/cp/ChangeLog: * module.cc (set_defining_module): Track partial specialisations for all declarations. gcc/testsuite/ChangeLog: * g++.dg/modules/concept-9.h: New test. * g++.dg/modules/concept-9_a.C: New test. * g++.dg/modules/concept-9_b.C: New test. * g++.dg/modules/concept-10_a.H: New test. * g++.dg/modules/concept-10_b.C: New test. Signed-off-by: Nathaniel Shead <nathanielosh...@gmail.com>