summaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2009-01-16 19:18:18 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2009-01-16 19:18:18 +0000
commitcd6342bd1ce409168e6980a1573ed0eaf8f570e6 (patch)
treec4997b22540cbef79a66ef53490b30491bd30b3d /gcc/java
parent298bbd8dca781f7973acbba05b81225b017d7c17 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/java/builtins.c7
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. */