]> gcc.gnu.org Git - gcc.git/commit
c++: Incorrect specialization hash table [PR 99285]
authorNathan Sidwell <nathan@acm.org>
Mon, 8 Mar 2021 18:01:21 +0000 (10:01 -0800)
committerNathan Sidwell <nathan@acm.org>
Mon, 8 Mar 2021 18:08:51 +0000 (10:08 -0800)
commitded6a1953dd7f43229c44e5d0d17c264338a3f4c
treed6152c9982472c8080f11a2ff4337bea81d68295
parent0d9a70ea3881c284b7689b691d54d047b55b486d
c++: Incorrect specialization hash table [PR 99285]

Class template partial specializations need to be in the
specialization hash, but not all of them.  This defers adding
streamed-in entities to the hash table, in the same way I deferred
adding the instantiation and specialization lists for 99170.

PR c++/99285
gcc/cp/
* cp-tree.h (match_mergeable_specialization)
(add_mergeable_specialization): Adjust parms.
* module.cc (trees_in::decl_value): Adjust
add_mergeable_specialization calls.
(trees_out::key_mergeable): Adjust match_mergeable_specialization
calls.
(specialization_add): Likewise.
* pt.c (match_mergeable_specialization): Do not insert.
(add_mergeable_specialization): Add to hash table here.
gcc/testsuite/
* g++.dg/modules/pr99285_a.H: New.
* g++.dg/modules/pr99285_b.H: New.
gcc/cp/cp-tree.h
gcc/cp/module.cc
gcc/cp/pt.c
gcc/testsuite/g++.dg/modules/pr99285_a.H [new file with mode: 0644]
gcc/testsuite/g++.dg/modules/pr99285_b.H [new file with mode: 0644]
This page took 0.065042 seconds and 6 git commands to generate.