aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/java-tree.h
diff options
context:
space:
mode:
authorPer Bothner <bothner@gcc.gnu.org>1998-12-07 07:43:14 -0800
committerPer Bothner <bothner@gcc.gnu.org>1998-12-07 07:43:14 -0800
commit157412f5c7ef3d9fe1200f5c7aaca3cd608bdaad (patch)
tree1018a5450e22da02909a5a481e080f48e1720221 /gcc/java/java-tree.h
parent72a0aac6d24eb609d28b9c034c98ae29257db4a6 (diff)
downloadgcc-157412f5c7ef3d9fe1200f5c7aaca3cd608bdaad.zip
gcc-157412f5c7ef3d9fe1200f5c7aaca3cd608bdaad.tar.gz
gcc-157412f5c7ef3d9fe1200f5c7aaca3cd608bdaad.tar.bz2
constants.c (find_methodref_index): When the class is an interface...
T * constants.c (find_methodref_index): When the class is an interface, generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef. * decl.c (finit_identifier_node): Use "$finit$", rather than "<finit>" (which Sun's verifier rejects). * parse.y (maybe_generate_finit): Leave out meaningless final flag. (generate_field_initialization_code): Removed. (fix_constructors) Don't add call to $finit$ here (wrong order). (patch_method_invocation): Add $finit$ call here. * java-tree.h (CALL_USING_SUPER): New macro. * parse.y (patch_invoke): Remove im local variable. (patch_method_invocation, patch_invoke): Don't pass super parameter. (patch_invoke): Use CALL_USING_SUPER instead of from_super parameter. (resolve_qualified_expression_name): Maybe set CALL_USING_SUPER. * jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL. * parse.y (java_complete_tree): Don't complain about unreachable statement if it is empty_stmt_node. * jcf-write.c (find_constant_wide): New function. (push_long_const): Use find_constant_wide. * jcf-write.c (generate_bytecode_insn): Fix bug in switch handling. (generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR. Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set. Emit invokeinterface when calling an interface method. Emit invokespecial also when calling super or private methods. * jcf-write.c (generate_classfile): Emit ConstantValue attributes. From-SVN: r24161
Diffstat (limited to 'gcc/java/java-tree.h')
-rw-r--r--gcc/java/java-tree.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h
index 4e65525..1214b86 100644
--- a/gcc/java/java-tree.h
+++ b/gcc/java/java-tree.h
@@ -52,6 +52,7 @@ struct JCF;
SWITCH_HAS_DEFAULT (in SWITCH_EXPR)
4: IS_A_COMMAND_LINE_FILENAME_P (in IDENTIFIER_NODE)
RESOLVE_TYPE_NAME_P (in EXPR_WITH_FILE_LOCATION)
+ CALL_USING_SUPER (in CALL_EXPR)
5: HAS_BEEN_ALREADY_PARSED_P (in IDENTIFIER_NODE)
IS_BREAK_STMT_P (in EXPR_WITH_FILE_LOCATION)
IS_CRAFTED_STRING_BUFFER_P (in CALL_EXPR)
@@ -211,7 +212,7 @@ extern tree string_array_type_node;
extern tree TYPE_identifier_node; /* "TYPE" */
extern tree init_identifier_node; /* "<init>" */
extern tree clinit_identifier_node; /* "<clinit>" */
-extern tree finit_identifier_node; /* "<finit>" */
+extern tree finit_identifier_node; /* "$finit$" */
extern tree void_signature_node; /* "()V" */
extern tree length_identifier_node; /* "length" */
extern tree this_identifier_node; /* "this" */
@@ -707,7 +708,7 @@ extern tree *type_map;
#define CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P(TYPE) \
TYPE_LANG_FLAG_5 (TYPE)
-/* True if class TYPE has a field initializer <finit> function */
+/* True if class TYPE has a field initializer $finit$ function */
#define CLASS_HAS_FINIT_P(TYPE) TYPE_LANG_FLAG_6 (TYPE)
/* True if identifier ID was seen while processing a single type import stmt */
@@ -760,6 +761,9 @@ extern tree *type_map;
/* True if EXPR (a CALL_EXPR in that case) is a crafted StringBuffer */
#define IS_CRAFTED_STRING_BUFFER_P(EXPR) TREE_LANG_FLAG_5 (EXPR)
+/* If set in CALL_EXPR, the receiver is 'super'. */
+#define CALL_USING_SUPER(EXPR) TREE_LANG_FLAG_4 (EXPR)
+
/* True if NODE (a statement) can complete normally. */
#define CAN_COMPLETE_NORMALLY(NODE) TREE_LANG_FLAG_6(NODE)