c++: stream PACK_EXPANSION_EXTRA_ARGS [PR106761]
authorPatrick Palka <ppalka@redhat.com>
Tue, 20 Sep 2022 14:19:30 +0000 (10:19 -0400)
committerPatrick Palka <ppalka@redhat.com>
Tue, 20 Sep 2022 14:19:30 +0000 (10:19 -0400)
commit84b2ab97e412d9514730db335a795c7db2fb42cc
tree379055cd7af4fee6cdf3c8a726d32de3e8261b52
parenta8bb495a5627bba44407dedbe38653bb0432d811
c++: stream PACK_EXPANSION_EXTRA_ARGS [PR106761]

It looks like after the libstdc++ commit r13-2158-g02f6b405f0e9dc
some xtreme-header-* tests are failing with "conflicting global module
declaration" errors ultimately because we're neglecting to stream
PACK_EXPANSION_EXTRA_ARGS, which leads to wrong equivalences of
different partial instantiations of _TupleConstraints::__constructible.

PR c++/106761

gcc/cp/ChangeLog:

* module.cc (trees_out::type_node) <case TYPE_PACK_EXPANSION>:
Stream PACK_EXPANSION_EXTRA_ARGS.
(trees_in::tree_node) <case TYPE_PACK_EXPANSION>: Likewise.

gcc/testsuite/ChangeLog:

* g++.dg/modules/pr106761.h: New test.
* g++.dg/modules/pr106761_a.H: New test.
* g++.dg/modules/pr106761_b.C: New test.
gcc/cp/module.cc
gcc/testsuite/g++.dg/modules/pr106761.h [new file with mode: 0644]
gcc/testsuite/g++.dg/modules/pr106761_a.H [new file with mode: 0644]
gcc/testsuite/g++.dg/modules/pr106761_b.C [new file with mode: 0644]