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 <nathanieloshead@gmail.com>
Showing
- gcc/cp/module.cc 4 additions, 1 deletiongcc/cp/module.cc
- gcc/testsuite/g++.dg/modules/concept-10_a.H 25 additions, 0 deletionsgcc/testsuite/g++.dg/modules/concept-10_a.H
- gcc/testsuite/g++.dg/modules/concept-10_b.C 8 additions, 0 deletionsgcc/testsuite/g++.dg/modules/concept-10_b.C
- gcc/testsuite/g++.dg/modules/concept-9.h 18 additions, 0 deletionsgcc/testsuite/g++.dg/modules/concept-9.h
- gcc/testsuite/g++.dg/modules/concept-9_a.C 13 additions, 0 deletionsgcc/testsuite/g++.dg/modules/concept-9_a.C
- gcc/testsuite/g++.dg/modules/concept-9_b.C 8 additions, 0 deletionsgcc/testsuite/g++.dg/modules/concept-9_b.C
Loading
Please register or sign in to comment