diff options
author | Richard Biener <rguenther@suse.de> | 2013-05-27 12:44:29 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-05-27 12:44:29 +0000 |
commit | d1de852b6813728f736dffdd7f69944e26423305 (patch) | |
tree | 3a567ce3376b229dfef2230953fb3bef521c5ba0 /gcc/fold-const.c | |
parent | 9606f3c9b1ba304999a045d8024fb04ab2207418 (diff) | |
download | gcc-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.c | 4 |
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)) |