aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-05-27 12:44:29 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-05-27 12:44:29 +0000
commitd1de852b6813728f736dffdd7f69944e26423305 (patch)
tree3a567ce3376b229dfef2230953fb3bef521c5ba0 /gcc/fold-const.c
parent9606f3c9b1ba304999a045d8024fb04ab2207418 (diff)
downloadgcc-d1de852b6813728f736dffdd7f69944e26423305.zip
gcc-d1de852b6813728f736dffdd7f69944e26423305.tar.gz
gcc-d1de852b6813728f736dffdd7f69944e26423305.tar.bz2
revert: re PR rtl-optimization/57381 (array of volatile pointers hangs gcc)
2013-05-27 Richard Biener <rguenther@suse.de> Revert PR middle-end/57381 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with OEP_CONSTANT_ADDRESS_OF retained. PR tree-optimization/57417 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test for unchanged base. (set_ssa_val_to): Compare addresses using get_addr_base_and_unit_offset. * gcc.dg/torture/pr57417.c: New testcase. From-SVN: r199356
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r--gcc/fold-const.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 38db3f1..a2b7ac1 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -2664,10 +2664,10 @@ operand_equal_p (const_tree arg0, const_tree arg1, unsigned int flags)
case COMPONENT_REF:
/* Handle operand 2 the same as for ARRAY_REF. Operand 0
may be NULL when we're called to compare MEM_EXPRs. */
- if (!OP_SAME_WITH_NULL (0) || !OP_SAME (1))
+ if (!OP_SAME_WITH_NULL (0))
return 0;
flags &= ~OEP_CONSTANT_ADDRESS_OF;
- return OP_SAME_WITH_NULL (2);
+ return OP_SAME (1) && OP_SAME_WITH_NULL (2);
case BIT_FIELD_REF:
if (!OP_SAME (0))