diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-01-16 19:18:18 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-01-16 19:18:18 +0000 |
commit | cd6342bd1ce409168e6980a1573ed0eaf8f570e6 (patch) | |
tree | c4997b22540cbef79a66ef53490b30491bd30b3d /gcc/java | |
parent | 298bbd8dca781f7973acbba05b81225b017d7c17 (diff) | |
download | gcc-cd6342bd1ce409168e6980a1573ed0eaf8f570e6.tar.gz |
2009-01-16 Richard Guenther <rguenther@suse.de>
PR tree-optimization/38835
PR middle-end/36227
* fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
and INT + PTR -> (INT)(PTR p+ INT) folding.
* tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
java/
* builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR.
* gcc.c-torture/execute/pr36227.c: New testcase.
* gcc.dg/tree-ssa/foldaddr-1.c: XFAIL.
* g++.dg/init/const7.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143442 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java')
-rw-r--r-- | gcc/java/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/java/builtins.c | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index a1773802748..dd696e689da 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,9 @@ +2009-01-16 Richard Guenther <rguenther@suse.de> + + PR tree-optimization/38835 + PR middle-end/36227 + * builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR. + 2008-12-05 Sebastian Pop <sebastian.pop@amd.com> PR bootstrap/38262 diff --git a/gcc/java/builtins.c b/gcc/java/builtins.c index a760def7748..c46241b7a81 100644 --- a/gcc/java/builtins.c +++ b/gcc/java/builtins.c @@ -265,9 +265,10 @@ static tree build_addr_sum (tree type, tree addr, tree offset) { tree ptr_type = build_pointer_type (type); - return fold_build2 (PLUS_EXPR, - ptr_type, - fold_convert (ptr_type, addr), offset); + return fold_build2 (POINTER_PLUS_EXPR, + ptr_type, + fold_convert (ptr_type, addr), + fold_convert (sizetype, offset)); } /* Make sure that this-arg is non-NULL. This is a security check. */ |