aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-11-07 10:44:02 +0100
committerMartin Liska <marxin@gcc.gnu.org>2019-11-07 09:44:02 +0000
commit0048539a2a48b6c10bbb0ba0607f57cd16c935aa (patch)
tree9fe928696e7ba92c45d06508b7a675dfbd0e567a /gcc
parentdb37dc33a6811235990e3de3e1776c82a868e4b6 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/fold-const.c4
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. */