diff options
author | Richard Guenther <rguenth@gcc.gnu.org> | 2005-04-27 19:39:08 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2005-04-27 19:39:08 +0000 |
commit | 49d766869a568a5fa928466121d69671902da9c9 (patch) | |
tree | 202d8b6c9f1bd1043f1f9636ea19700aab9ad147 /gcc | |
parent | 51282ceaf054c617c4a5e0d7f2458c39637d2566 (diff) | |
download | gcc-49d766869a568a5fa928466121d69671902da9c9.zip gcc-49d766869a568a5fa928466121d69671902da9c9.tar.gz gcc-49d766869a568a5fa928466121d69671902da9c9.tar.bz2 |
fold-const.c (fold_binary): Use build_fold_addr_expr for address calculation and INDIRECT_REF handling.
2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
* fold-const.c (fold_binary): Use build_fold_addr_expr
for address calculation and INDIRECT_REF handling.
From-SVN: r98877
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fold-const.c | 18 |
2 files changed, 8 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index af1b5fd..4d31978 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-04-27 Richard Guenther <rguenth@gcc.gnu.org> + + * fold-const.c (fold_binary): Use build_fold_addr_expr + for address calculation and INDIRECT_REF handling. + 2005-04-27 Andrew Haley <aph@redhat.com> * postreload-gcse.c (hash_scan_set): Remove bogus assertion. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 9de988c..9e9243c 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -9723,21 +9723,9 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1) { tree op0 = TREE_OPERAND (cref0, 0); tree op1 = TREE_OPERAND (cref1, 0); - if (TREE_CODE (op0) == INDIRECT_REF) - op0 = TREE_OPERAND (op0, 0); - else - { - tree ptype = build_pointer_type (TREE_TYPE (op0)); - op0 = build1 (ADDR_EXPR, ptype, op0); - } - if (TREE_CODE (op1) == INDIRECT_REF) - op1 = TREE_OPERAND (op1, 0); - else - { - tree ptype = build_pointer_type (TREE_TYPE (op1)); - op1 = build1 (ADDR_EXPR, ptype, op1); - } - return fold_build2 (code, type, op0, op1); + return fold_build2 (code, type, + build_fold_addr_expr (op0), + build_fold_addr_expr (op1)); } } |