diff options
Diffstat (limited to 'gcc/java')
-rw-r--r-- | gcc/java/ChangeLog | 14 | ||||
-rw-r--r-- | gcc/java/java-gimplify.c | 3 | ||||
-rw-r--r-- | gcc/java/java-tree.def | 44 | ||||
-rw-r--r-- | gcc/java/jcf-write.c | 3 | ||||
-rw-r--r-- | gcc/java/lang.c | 10 | ||||
-rw-r--r-- | gcc/java/parse.y | 10 |
6 files changed, 46 insertions, 38 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index ecb2cad..f0311cc 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,11 @@ +2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com> + Zack Weinberg <zack@codesourcery.com> + + * java-tree.def: Use tree_code_class enumeration constants + instead of code letters. + * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for + new tree-class enumeration constants. + 2004-09-13 Tom Tromey <tromey@redhat.com> PR java/17216: @@ -131,7 +139,7 @@ * class.c (build_utf8_ref, build_static_field_ref, make_field_value, make_method_value, get_dispatch_table, make_class_data, emit_symbol_table, emit_catch_table): Likewise. - * constants.c (get_tag_node, build_ref_from_constant_pool, + * constants.c (get_tag_node, build_ref_from_constant_pool, build_constants_constructor): Likewise. * decl.c (java_init_decl_processing): Likewise. * expr.c (build_java_array_length_access, build_newarray, @@ -627,7 +635,7 @@ set_nested_class_simple_name_value. 2004-06-22 Andrew Haley <aph@redhat.com> - Ranjit Mathew <rmathew@hotmail.com> + Ranjit Mathew <rmathew@hotmail.com> Fixes PR java/16113. * decl.c (force_poplevels): Remove call to expand_end_bindings. @@ -699,7 +707,7 @@ of unordered conditionals. Add comment. 2004-05-29 Ranjit Mathew <rmathew@hotmail.com> - Per Bothner <per@bothner.com> + Per Bothner <per@bothner.com> * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a local variable was initialised upon declaration. diff --git a/gcc/java/java-gimplify.c b/gcc/java/java-gimplify.c index 6632e93..54d5c75 100644 --- a/gcc/java/java-gimplify.c +++ b/gcc/java/java-gimplify.c @@ -141,7 +141,8 @@ java_gimplify_expr (tree *expr_p, tree *pre_p ATTRIBUTE_UNUSED, Parameter lists, maybe? Or perhaps that's unnecessary because the front end already generates SAVE_EXPRs. */ - if (TREE_CODE_CLASS (code) == '2' || TREE_CODE_CLASS (code) == '<') + if (TREE_CODE_CLASS (code) == tcc_binary + || TREE_CODE_CLASS (code) == tcc_comparison) { enum gimplify_status stat = gimplify_expr (&TREE_OPERAND (*expr_p, 0), pre_p, post_p, diff --git a/gcc/java/java-tree.def b/gcc/java/java-tree.def index 25ee538..2f2b9f4 100644 --- a/gcc/java/java-tree.def +++ b/gcc/java/java-tree.def @@ -1,33 +1,34 @@ /* Shift right, logical. */ -DEFTREECODE (URSHIFT_EXPR, "urshift_expr", '2', 2) +DEFTREECODE (URSHIFT_EXPR, "urshift_expr", tcc_binary, 2) /* Return -1, 0, 1 depending on whether the first argument is less, equal, or greater to the second argument. */ -DEFTREECODE (COMPARE_EXPR, "compare_expr", '2', 2) +DEFTREECODE (COMPARE_EXPR, "compare_expr", tcc_binary, 2) /* Same as COMPARE_EXPR, but if either value is NaN, the result is -1. */ -DEFTREECODE (COMPARE_L_EXPR, "compare_l_expr", '2', 2) +DEFTREECODE (COMPARE_L_EXPR, "compare_l_expr", tcc_binary, 2) /* Same as COMPARE_EXPR, but if either value is NaN, the result is 1. */ -DEFTREECODE (COMPARE_G_EXPR, "compare_g_expr", '2', 2) +DEFTREECODE (COMPARE_G_EXPR, "compare_g_expr", tcc_binary, 2) /* Unary plus. Operand 0 is the expression the unary plus is applied to */ -DEFTREECODE (UNARY_PLUS_EXPR, "unary_plus_expr", '1', 1) +DEFTREECODE (UNARY_PLUS_EXPR, "unary_plus_expr", tcc_unary, 1) /* New array creation expression. Operand 0 is the array base type. Operand 1 is the list of dimension expressions. Operand 2 is the number of other dimensions of unspecified range. Once patched, the node will bear the type of the created array. */ -DEFTREECODE (NEW_ARRAY_EXPR, "new_array_expr", 'e', 3) +DEFTREECODE (NEW_ARRAY_EXPR, "new_array_expr", tcc_expression, 3) /* New anonymous array creation expression. Operand 0 is the base type of the anonymous array. Operand 1 is the signature of the dimensions this array contains. Operand 2 is the anonymous array initializer. Once patched, the node will bear the type of the created array. */ -DEFTREECODE (NEW_ANONYMOUS_ARRAY_EXPR, "new_anonymous_array", 'e', 3) +DEFTREECODE (NEW_ANONYMOUS_ARRAY_EXPR, "new_anonymous_array", + tcc_expression, 3) /* New class creation expression. Operand 0 is the name of the class to be created @@ -35,68 +36,69 @@ DEFTREECODE (NEW_ANONYMOUS_ARRAY_EXPR, "new_anonymous_array", 'e', 3) There is no operand 2. That slot is used for the CALL_EXPR_RTL macro (see preexpand_calls). The type should be the one of the created class. */ -DEFTREECODE (NEW_CLASS_EXPR, "new_class_expr", 'e', 3) +DEFTREECODE (NEW_CLASS_EXPR, "new_class_expr", tcc_expression, 3) /* Defines `this' as an expression. */ -DEFTREECODE (THIS_EXPR, "this", '1', 0) +DEFTREECODE (THIS_EXPR, "this", tcc_unary, 0) /* Case statement expression. Operand 1 is the case value. */ -DEFTREECODE (CASE_EXPR, "case", 'e', 1) +DEFTREECODE (CASE_EXPR, "case", tcc_expression, 1) /* Default statement expression. */ -DEFTREECODE (DEFAULT_EXPR, "default", 'e', 0) +DEFTREECODE (DEFAULT_EXPR, "default", tcc_expression, 0) /* Try expression Operand 0 is the tried block, Operand 1 contains chained catch nodes. */ -DEFTREECODE (TRY_EXPR, "try-catch", 'e', 2) +DEFTREECODE (TRY_EXPR, "try-catch", tcc_expression, 2) /* Catch clause. Operand 0 is the catch clause block, which contains the declaration of the catch clause parameter. */ -DEFTREECODE (JAVA_CATCH_EXPR, "catch", '1', 1) +DEFTREECODE (JAVA_CATCH_EXPR, "catch", tcc_unary, 1) /* Synchronized statement. Operand 0 is the expression on which we wish to synchronize, Operand 1 is the synchronized expression block. */ -DEFTREECODE (SYNCHRONIZED_EXPR, "synchronized", 'e', 2) +DEFTREECODE (SYNCHRONIZED_EXPR, "synchronized", tcc_expression, 2) /* Throw statement. Operand 0 is the throw expression. */ -DEFTREECODE (THROW_EXPR, "throw", '1', 1) +DEFTREECODE (THROW_EXPR, "throw", tcc_unary, 1) /* Conditional operator. Operand 0 is the condition expression Operand 1 is the then-value Operand 2 is the else-value. */ -DEFTREECODE (CONDITIONAL_EXPR, "?:", 'e', 3) +DEFTREECODE (CONDITIONAL_EXPR, "?:", tcc_expression, 3) /* instanceof operator. Operand 0 is the expression that is getting tested Operand 1 is the class used for the test. */ -DEFTREECODE (INSTANCEOF_EXPR, "instanceof", 'e', 2) +DEFTREECODE (INSTANCEOF_EXPR, "instanceof", tcc_expression, 2) /* Array initializers. Operand 0 is the (sub) array target to initialize, left to NULL_TREE when the node is created. Operand 1 is a CONSTRUCTOR node. */ -DEFTREECODE (NEW_ARRAY_INIT, "new_array_init", '1', 1) +DEFTREECODE (NEW_ARRAY_INIT, "new_array_init", tcc_unary, 1) /* Class literal. Operand 0 is the name of the class we're trying to build a reference from. */ -DEFTREECODE (CLASS_LITERAL, "class_literal", '1', 1) +DEFTREECODE (CLASS_LITERAL, "class_literal", tcc_unary, 1) /* The Java object within the exception object from the runtime. */ -DEFTREECODE (JAVA_EXC_OBJ_EXPR, "java_exc_obj_expr", 'e', 0) +DEFTREECODE (JAVA_EXC_OBJ_EXPR, "java_exc_obj_expr", tcc_expression, 0) /* Annotates a tree node (usually an expression) with source location information: a file name (EXPR_WFL_FILENAME); a line number (EXPR_WFL_LINENO); and column number (EXPR_WFL_COLNO). It is expanded as the contained node (EXPR_WFL_NODE); a line note should be emitted first if EXPR_WFL_EMIT_LINE_NOTE. */ -DEFTREECODE (EXPR_WITH_FILE_LOCATION, "expr_with_file_location", 'e', 3) +DEFTREECODE (EXPR_WITH_FILE_LOCATION, "expr_with_file_location", + tcc_expression, 3) /* Local variables: diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c index 7b5bdcc..5137eec 100644 --- a/gcc/java/jcf-write.c +++ b/gcc/java/jcf-write.c @@ -2036,8 +2036,7 @@ generate_bytecode_insns (tree exp, int target, struct jcf_partial *state) /* If the rhs is a binary expression and the left operand is `==' to the lhs then we have an OP= expression. In this case we must do some special processing. */ - if (TREE_CODE_CLASS (TREE_CODE (rhs)) == '2' - && lhs == TREE_OPERAND (rhs, 0)) + if (BINARY_CLASS_P (rhs) && lhs == TREE_OPERAND (rhs, 0)) { if (TREE_CODE (lhs) == COMPONENT_REF) { diff --git a/gcc/java/lang.c b/gcc/java/lang.c index b9429a1..d1c6977 100644 --- a/gcc/java/lang.c +++ b/gcc/java/lang.c @@ -78,9 +78,9 @@ static void java_clear_binding_stack (void); #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE, -const char tree_code_type[] = { +const enum tree_code_class tree_code_type[] = { #include "tree.def" - 'x', + tcc_exceptional, #include "java-tree.def" }; #undef DEFTREECODE @@ -430,8 +430,7 @@ put_decl_node (tree node) node = TREE_TYPE (node); was_pointer = 1; } - if (TREE_CODE_CLASS (TREE_CODE (node)) == 'd' - && DECL_NAME (node) != NULL_TREE) + if (DECL_P (node) && DECL_NAME (node) != NULL_TREE) { if (TREE_CODE (node) == FUNCTION_DECL) { @@ -464,8 +463,7 @@ put_decl_node (tree node) else put_decl_node (DECL_NAME (node)); } - else if (TREE_CODE_CLASS (TREE_CODE (node)) == 't' - && TYPE_NAME (node) != NULL_TREE) + else if (TYPE_P (node) && TYPE_NAME (node) != NULL_TREE) { if (TREE_CODE (node) == RECORD_TYPE && TYPE_ARRAY_P (node)) { diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 4996271..377c195 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -1687,7 +1687,7 @@ do_statement: for_statement: for_begin SC_TK expression SC_TK for_update CP_TK statement { - if (TREE_CODE_CLASS (TREE_CODE ($3)) == 'c') + if (CONSTANT_CLASS_P ($3)) $3 = build_wfl_node ($3); $$ = finish_for_loop (EXPR_WFL_LINECOL ($3), $3, $5, $7); } @@ -3126,7 +3126,7 @@ find_expr_with_wfl (tree node) { while (node) { - char code; + enum tree_code_class code; tree to_return; switch (TREE_CODE (node)) @@ -3152,7 +3152,8 @@ find_expr_with_wfl (tree node) default: code = TREE_CODE_CLASS (TREE_CODE (node)); - if (((code == '1') || (code == '2') || (code == 'e')) + if (((code == tcc_unary) || (code == tcc_binary) + || (code == tcc_expression)) && EXPR_WFL_LINECOL (node)) return node; return NULL_TREE; @@ -14895,8 +14896,7 @@ finish_for_loop (int location, tree condition, tree update, tree body) { /* Try to detect constraint violations. These would be programming errors somewhere. */ - if (! IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (up2))) - || TREE_CODE (up2) == LOOP_EXPR) + if (! EXPR_P (up2) || TREE_CODE (up2) == LOOP_EXPR) abort (); SUPPRESS_UNREACHABLE_ERROR (up2) = 1; } |