diff options
author | Nathan Sidwell <nathan@acm.org> | 2020-04-20 06:48:45 -0700 |
---|---|---|
committer | Nathan Sidwell <nathan@acm.org> | 2020-04-20 06:48:45 -0700 |
commit | 7fcb93431ef18a31c9af142f77faa176bbd9b3dc (patch) | |
tree | 6e60d0d04b86933e0888c8deb3f85db1669e7546 /gcc/tree-vect-loop.c | |
parent | aa576f2a860c8287cac6bbe6d37f5f37448bf06a (diff) | |
download | gcc-7fcb93431ef18a31c9af142f77faa176bbd9b3dc.zip gcc-7fcb93431ef18a31c9af142f77faa176bbd9b3dc.tar.gz gcc-7fcb93431ef18a31c9af142f77faa176bbd9b3dc.tar.bz2 |
c++: Expr pack expansion equality [pr94454]
We were not comparing expression pack expansions correctly. We could
consider distinct expansions equal and creating two, apparently equal,
specializations that would sometimes collide. cp_tree_operand_length
says a pack has 1 operand (for mangling), whereas it actually has 3,
but only two of which are significant for equality. We must special
case that in cp_tree_equal. That new code matches the hasher and the
type_pack_expansion case in structural_comp_types.
* tree.c (cp_tree_equal): [TEMPLATE_ID_EXPR, default] Refactor.
[EXPR_PACK_EXPANSION]: Add.
Diffstat (limited to 'gcc/tree-vect-loop.c')
0 files changed, 0 insertions, 0 deletions