171262081c
2001-08-16 Alexandre Petit-Bianco <apbianco@redhat.com> * jcf-parse.c (load_class): New locals saved and class_loaded. If loading a class_or_name fails, try considering an innerclass name and load the enclosing context. * parse.y (resolve_inner_class): New function. (find_as_inner_class): Added leading comment. (register_incomplete_type): Keep the current context as enclosing context for JDEP_FIELD dependencies. (do_resolve_class): Locals new_class_decl and super initialized to NULL. Call resolve_inner_class, explore the enclosing context superclass if necessary. Fixes PR java/4007 2001-08-12 Alexandre Petit-Bianco <apbianco@redhat.com> * decl.c (init_decl_processing): exception_type_node, class_not_found_type_node, and no_class_def_found_type_node initialized. predef_filenames augmented accordingly. instinit_identifier_node initialized. * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed. * java-tree.h (enum java_tree_index): New entries JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE, JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE. (exception_type_node): New macro. (class_not_found_type_node): Likewise. (no_class_def_found_type_node): Likewise. (instinit_identifier_node): Likewise. (PREDEF_FILENAMES_SIZE): Adjusted. (TYPE_HAS_FINAL_VARIABLE): Fixed typo. (struct lang_type): Fixed typo in bitfield name. (DECL_INSTINIT_P): New macro. (ID_INSTINIT_P): Likewise. * jcf-write.c (generate_classfile): instinit$ bears the Synthetic attribute. * parse.y (encapsulate_with_try_catch): New function. (generate_instinit): Likewise. (build_instinit_invocation): Likewise. (ctors_unchecked_throws_clause_p): Likewise. (add_instance_initializer): Deleted. (build_instance_initializer): Likewise. (in_instance_initializer): Likewise. (check_method_redefinition): instinit$ not to be verified. (java_complete_expand_methods): Generate instinit$, simplified code. (build_dot_class_method): Eliminated unnecessary locals. Use encapsulate_with_try_catch, removed unnecessary code. (fix_constructors): New local iii. Use build_instinit_invocation. (patch_method_invocation): Added comment. (maybe_use_access_method): Don't consider instinit$. (find_applicable_accessible_methods_list): Shorten the search for instinit$ too. (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed. (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer. (patch_throw_statement): Likewise. Fixed typo. 2001-08-09 Alexandre Petit-Bianco <apbianco@redhat.com> * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and `poplevel' in the right order. (http://gcc.gnu.org/ml/gcc-patches/2001-08/msg01061.html ) From-SVN: r44982
99 lines
3.4 KiB
Modula-2
99 lines
3.4 KiB
Modula-2
/* Shift right, logical. */
|
|
|
|
DEFTREECODE (URSHIFT_EXPR, "urshift_expr", '2', 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)
|
|
|
|
/* Same as COMPARE_EXPR, but if either value is NaN, the result is -1. */
|
|
DEFTREECODE (COMPARE_L_EXPR, "compare_l_expr", '2', 2)
|
|
/* Same as COMPARE_EXPR, but if either value is NaN, the result is 1. */
|
|
DEFTREECODE (COMPARE_G_EXPR, "compare_g_expr", '2', 2)
|
|
|
|
/* Unary plus. Operand 0 is the expression the unary plus is applied
|
|
to */
|
|
DEFTREECODE (UNARY_PLUS_EXPR, "unary_plus_expr", '1', 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)
|
|
|
|
/* 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)
|
|
|
|
/* New class creation expression.
|
|
Operand 0 is the name of the class to be created
|
|
Operand 1 is the argument list used to select a constructor.
|
|
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)
|
|
|
|
/* Defines `this' as an expression. */
|
|
DEFTREECODE (THIS_EXPR, "this", '1', 0)
|
|
|
|
/* Case statement expression.
|
|
Operand 1 is the case value. */
|
|
DEFTREECODE (CASE_EXPR, "case", 'e', 1)
|
|
|
|
/* Default statement expression. */
|
|
DEFTREECODE (DEFAULT_EXPR, "default", 'e', 0)
|
|
|
|
/* Try expression
|
|
Operand 0 is the tried block,
|
|
Operand 1 contains chained catch nodes. */
|
|
DEFTREECODE (TRY_EXPR, "try-catch", 'e', 2)
|
|
|
|
/* Catch clause.
|
|
Operand 0 is the catch clause block, which contains the declaration of
|
|
the catch clause parameter. */
|
|
DEFTREECODE (CATCH_EXPR, "catch", '1', 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)
|
|
|
|
/* Throw statement.
|
|
Operand 0 is the throw expression. */
|
|
DEFTREECODE (THROW_EXPR, "throw", '1', 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)
|
|
|
|
/* 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)
|
|
|
|
/* 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)
|
|
|
|
/* 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)
|
|
|
|
/* The Java object within the exception object from the runtime. */
|
|
DEFTREECODE (JAVA_EXC_OBJ_EXPR, "java_exc_obj_expr", 'e', 0)
|
|
|
|
/*
|
|
Local variables:
|
|
mode:c
|
|
End:
|
|
*/
|