[PR94044] Fix ICE with sizeof<argumentpack>
authorNathan Sidwell <nathan@acm.org>
Mon, 23 Mar 2020 10:39:49 +0000 (03:39 -0700)
committerNathan Sidwell <nathan@acm.org>
Mon, 23 Mar 2020 10:39:49 +0000 (03:39 -0700)
commit26b3e568a60e9fd851efb436531752a5e49e6419
treef358753890093dc116d3fca84127d00863278378
parent7a2090b04e54ffccc64ad2dfd5b46eb4bb8ce482
[PR94044] Fix ICE with sizeof<argumentpack>

Thanks to Jim for figuring out how to reproduce the problem, I was
able to apply pr94044-jig.diff to poorly hash the specialization
table. (That places all the specializations of a particular template
in the same bucket, forcing us to compare the arguments.)

The testcase creates sizeof_exprs containing argument packs, and we
can no longer use same_type_p on those.

PR c++/94044
* tree.c (cp_tree_equal) [SIZEOF_EXPR]: Detect argument pack
operand.
gcc/cp/ChangeLog
gcc/cp/tree.c