diff options
author | Richard Guenther <rguenther@suse.de> | 2011-04-26 09:21:44 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-04-26 09:21:44 +0000 |
commit | ad0e2567d69760fa7156ef24418b4d10f99def6a (patch) | |
tree | 8ff4c2719e2c23a082193dd49ef8d3a607ac33e4 /gcc/tree.h | |
parent | 0d467c0bf219265a40b0cfe284092ec5382d4b1a (diff) | |
download | gcc-ad0e2567d69760fa7156ef24418b4d10f99def6a.zip gcc-ad0e2567d69760fa7156ef24418b4d10f99def6a.tar.gz gcc-ad0e2567d69760fa7156ef24418b4d10f99def6a.tar.bz2 |
re PR tree-optimization/48694 (possible memory hog bug)
2011-04-26 Richard Guenther <rguenther@suse.de>
PR middle-end/48694
* tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
* fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat
trees with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF
is set.
* gcc.dg/torture/pr48694-1.c: New testcase.
* gcc.dg/torture/pr48694-2.c: Likewise.
From-SVN: r172954
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -5118,7 +5118,8 @@ extern tree fold_fma (location_t, tree, tree, tree, tree); enum operand_equal_flag { OEP_ONLY_CONST = 1, - OEP_PURE_SAME = 2 + OEP_PURE_SAME = 2, + OEP_CONSTANT_ADDRESS_OF = 4 }; extern int operand_equal_p (const_tree, const_tree, unsigned int); |