aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2004-09-29 14:13:17 +0000
committerAndrew Haley <aph@gcc.gnu.org>2004-09-29 14:13:17 +0000
commiteab3f38f804d6d636a8f8e5ed5918dd8f7cc809d (patch)
tree7af8b87d4be1496aa3c1819ffeff459a6be5d46c /gcc/java
parentc4b3f0eb2124049d163f81118d026f68ed5dbc19 (diff)
downloadgcc-eab3f38f804d6d636a8f8e5ed5918dd8f7cc809d.zip
gcc-eab3f38f804d6d636a8f8e5ed5918dd8f7cc809d.tar.gz
gcc-eab3f38f804d6d636a8f8e5ed5918dd8f7cc809d.tar.bz2
re PR java/17007 (Inconsistent builtin attributes set by Java front end)
2004-09-29 Andrew Haley <aph@redhat.com> PR java/17007 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the result of TRUNC_MOD_EXPR. (patch_unaryop): Likewise for CONVERT_EXPR, which may throw. * decl.c (java_init_decl_processing): Mark soft_lookupinterfacemethod_node and soft_instanceof_node pure. From-SVN: r88289
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog9
-rw-r--r--gcc/java/decl.c2
-rw-r--r--gcc/java/parse.y3
3 files changed, 11 insertions, 3 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 5651350..cd5b84f 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,12 @@
+2004-09-29 Andrew Haley <aph@redhat.com>
+
+ PR java/17007
+ * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
+ result of TRUNC_MOD_EXPR.
+ (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
+ * decl.c (java_init_decl_processing): Mark
+ soft_lookupinterfacemethod_node and soft_instanceof_node pure.
+
2004-09-28 Tom Tromey <tromey@redhat.com>
PR java/15710:
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index f6c03a5..573fa2c 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -986,6 +986,7 @@ java_init_decl_processing (void)
= builtin_function ("_Jv_IsInstanceOf",
build_function_type (boolean_type_node, t),
0, NOT_BUILT_IN, NULL, NULL_TREE);
+ DECL_IS_PURE (soft_instanceof_node) = 1;
t = tree_cons (NULL_TREE, object_ptr_type_node,
tree_cons (NULL_TREE, object_ptr_type_node, endlink));
soft_checkarraystore_node
@@ -1000,6 +1001,7 @@ java_init_decl_processing (void)
build_function_type (ptr_type_node, t),
0, NOT_BUILT_IN, NULL, NULL_TREE);
+ DECL_IS_PURE (soft_lookupinterfacemethod_node) = 1;
t = tree_cons (NULL_TREE, object_ptr_type_node,
tree_cons (NULL_TREE, ptr_type_node,
tree_cons (NULL_TREE, ptr_type_node,
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 847a532..e3dab6a 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -13277,8 +13277,6 @@ patch_binop (tree node, tree wfl_op1, tree wfl_op2)
{
tree mod = build_java_binop (TRUNC_MOD_EXPR, prom_type, op1, op2);
COMPOUND_ASSIGN_P (mod) = COMPOUND_ASSIGN_P (node);
- TREE_SIDE_EFFECTS (mod)
- = TREE_SIDE_EFFECTS (op1) | TREE_SIDE_EFFECTS (op2);
return mod;
}
break;
@@ -14153,7 +14151,6 @@ patch_unaryop (tree node, tree wfl_op)
else
{
value = fold (value);
- TREE_SIDE_EFFECTS (value) = TREE_SIDE_EFFECTS (op);
return value;
}
break;