diff options
author | Martin Liska <mliska@suse.cz> | 2019-11-07 10:44:02 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-11-07 09:44:02 +0000 |
commit | 0048539a2a48b6c10bbb0ba0607f57cd16c935aa (patch) | |
tree | 9fe928696e7ba92c45d06508b7a675dfbd0e567a /gcc | |
parent | db37dc33a6811235990e3de3e1776c82a868e4b6 (diff) | |
download | gcc-0048539a2a48b6c10bbb0ba0607f57cd16c935aa.zip gcc-0048539a2a48b6c10bbb0ba0607f57cd16c935aa.tar.gz gcc-0048539a2a48b6c10bbb0ba0607f57cd16c935aa.tar.bz2 |
Add CONSTRUCTOR_NO_CLEARING to operand_equal_p.
2019-11-07 Martin Liska <mliska@suse.cz>
* fold-const.c (operand_compare::operand_equal_p): Add comparison
of CONSTRUCTOR_NO_CLEARING.
(operand_compare::hash_operand): Likewise.
From-SVN: r277912
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fold-const.c | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d64d6b7..94f72dd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-11-07 Martin Liska <mliska@suse.cz> + + * fold-const.c (operand_compare::operand_equal_p): Add comparison + of CONSTRUCTOR_NO_CLEARING. + (operand_compare::hash_operand): Likewise. + 2019-11-07 Georg-Johann Lay <avr@gjlay.de> Support 64-bit double and 64-bit long double configurations. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 88a069f..52cb238 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -3475,6 +3475,9 @@ operand_compare::operand_equal_p (const_tree arg0, const_tree arg1, case tcc_exceptional: if (TREE_CODE (arg0) == CONSTRUCTOR) { + if (CONSTRUCTOR_NO_CLEARING (arg0) != CONSTRUCTOR_NO_CLEARING (arg1)) + return false; + /* In GIMPLE constructors are used only to build vectors from elements. Individual elements in the constructor must be indexed in increasing order and form an initial sequence. @@ -3657,6 +3660,7 @@ operand_compare::hash_operand (const_tree t, inchash::hash &hstate, unsigned HOST_WIDE_INT idx; tree field, value; flags &= ~OEP_ADDRESS_OF; + hstate.add_int (CONSTRUCTOR_NO_CLEARING (t)); FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (t), idx, field, value) { /* In GIMPLE the indexes can be either NULL or matching i. */ |