diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2006-12-05 17:26:05 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2006-12-05 17:26:05 +0000 |
commit | 07beea0df36b29ef9acb27111eac0b0e92e181a5 (patch) | |
tree | 32d3ee1ddfcad180d619d756a84eeb0df779a6a2 /gcc/java | |
parent | 3b8aab767b942e122caf583493d7cd858c091cde (diff) | |
download | gcc-07beea0df36b29ef9acb27111eac0b0e92e181a5.zip gcc-07beea0df36b29ef9acb27111eac0b0e92e181a5.tar.gz gcc-07beea0df36b29ef9acb27111eac0b0e92e181a5.tar.bz2 |
Merge gimple-tuples-branch into mainline.
From-SVN: r119546
Diffstat (limited to 'gcc/java')
-rw-r--r-- | gcc/java/java-gimplify.c | 9 | ||||
-rw-r--r-- | gcc/java/java-tree.h | 7 |
2 files changed, 10 insertions, 6 deletions
diff --git a/gcc/java/java-gimplify.c b/gcc/java/java-gimplify.c index 54900d3..76d299f 100644 --- a/gcc/java/java-gimplify.c +++ b/gcc/java/java-gimplify.c @@ -120,6 +120,9 @@ java_gimplify_expr (tree *expr_p, tree *pre_p ATTRIBUTE_UNUSED, *expr_p = java_replace_reference (*expr_p, /* want_lvalue */ false); return GS_UNHANDLED; + /* We don't handle GIMPLE_MODIFY_STMT, as MODIFY_EXPRs with java + semantics should only be generated by the front-end, and never + by anything after gimplification. */ case MODIFY_EXPR: return java_gimplify_modify_expr (expr_p, pre_p, post_p); @@ -326,7 +329,7 @@ java_gimplify_modify_expr (tree *modify_expr_p, tree *pre_p, tree *post_p) { tree new_lhs = java_replace_reference (lhs, /* want_lvalue */ true); tree new_rhs = build1 (NOP_EXPR, TREE_TYPE (new_lhs), rhs); - modify_expr = build2 (MODIFY_EXPR, TREE_TYPE (new_lhs), + modify_expr = build2 (GIMPLE_MODIFY_STMT, TREE_TYPE (new_lhs), new_lhs, new_rhs); modify_expr = build1 (NOP_EXPR, lhs_type, modify_expr); } @@ -424,7 +427,7 @@ java_gimplify_new_array_init (tree exp) tree array_ptr_type = build_pointer_type (array_type); tree tmp = create_tmp_var (array_ptr_type, "array"); - tree body = build2 (MODIFY_EXPR, array_ptr_type, tmp, + tree body = build2 (GIMPLE_MODIFY_STMT, array_ptr_type, tmp, build_new_array (element_type, length)); int index = 0; @@ -437,7 +440,7 @@ java_gimplify_new_array_init (tree exp) tree lhs = build3 (COMPONENT_REF, TREE_TYPE (data_field), build_java_indirect_ref (array_type, tmp, 0), data_field, NULL_TREE); - tree assignment = build2 (MODIFY_EXPR, element_type, + tree assignment = build2 (GIMPLE_MODIFY_STMT, element_type, build4 (ARRAY_REF, element_type, lhs, build_int_cst (NULL_TREE, index++), NULL_TREE, NULL_TREE), diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index a064ab0..a7bfa38 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -725,7 +725,8 @@ struct lang_identifier GTY(()) /* The resulting tree type. */ union lang_tree_node GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"), - chain_next ("(union lang_tree_node *)TREE_CHAIN (&%h.generic)"))) + chain_next ("(GIMPLE_STMT_P (&%h.generic) ? (union lang_tree_node *) 0 : (union lang_tree_node *)TREE_CHAIN (&%h.generic))"))) + { union tree_node GTY ((tag ("0"), desc ("tree_node_structure (&%h)"))) @@ -1881,12 +1882,12 @@ enum /* In an EXPR_WITH_FILE_LOCATION node. */ #define EXPR_WFL_EMIT_LINE_NOTE(NODE) \ - (EXPR_WITH_FILE_LOCATION_CHECK (NODE)->common.public_flag) + (EXPR_WITH_FILE_LOCATION_CHECK (NODE)->base.public_flag) #undef EXPR_WFL_NODE #define EXPR_WFL_NODE(NODE) \ TREE_OPERAND (EXPR_WITH_FILE_LOCATION_CHECK (NODE), 0) #ifdef USE_MAPPED_LOCATION -#define EXPR_WFL_LINECOL(NODE) ((NODE)->exp.locus) +#define EXPR_WFL_LINECOL(NODE) EXPR_LOCUS(NODE) #define EXPR_WFL_FILENAME(NODE) EXPR_FILENAME (NODE) #define EXPR_WFL_LINENO(NODE) EXPR_LINENO (NODE) extern tree build_expr_wfl (tree, source_location); |