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
This commit is contained in:
Andrew Haley 2004-09-29 14:13:17 +00:00 committed by Andrew Haley
parent c4b3f0eb21
commit eab3f38f80
3 changed files with 11 additions and 3 deletions

View File

@ -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:

View File

@ -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,

View File

@ -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;