From efcda118a110aa4f5c271aec4ab615d9e056a198 Mon Sep 17 00:00:00 2001 From: apbianco Date: Wed, 14 Feb 2001 00:03:11 +0000 Subject: [PATCH] 2001-02-13 Alexandre Petit-Bianco * decl.c (classdollar_identifier_node): Initialize. * java-tree.h (enum java_tree_index): New entry `JTI_CLASSDOLLAR_IDENTIFIER_NODE.' (classdollar_identifier_node): New macro. (ID_CLASSDOLLAR_P): Likewise. * parse.y (build_dot_class_method): Use `classdollar_identifier_node.' (build_dot_class_method_invocation): Likewise. (find_applicable_accessible_methods_list): `class$' can't be inherited. (http://gcc.gnu.org/ml/gcc-patches/2001-02/msg00760.html) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39650 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/java/ChangeLog | 12 ++++++++++++ gcc/java/decl.c | 1 + gcc/java/java-tree.h | 4 ++++ gcc/java/parse.y | 12 ++++++------ 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 95126e454da..4b343b1c30a 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,15 @@ +2001-02-13 Alexandre Petit-Bianco + + * decl.c (classdollar_identifier_node): Initialize. + * java-tree.h (enum java_tree_index): New entry + `JTI_CLASSDOLLAR_IDENTIFIER_NODE.' + (classdollar_identifier_node): New macro. + (ID_CLASSDOLLAR_P): Likewise. + * parse.y (build_dot_class_method): Use `classdollar_identifier_node.' + (build_dot_class_method_invocation): Likewise. + (find_applicable_accessible_methods_list): `class$' can't be + inherited. + 2001-02-09 Raja R Harinath * Make-lang.in (java/mangle_name.o): Add 'make' prereqs. diff --git a/gcc/java/decl.c b/gcc/java/decl.c index f59605906a3..2f7f31583e0 100644 --- a/gcc/java/decl.c +++ b/gcc/java/decl.c @@ -602,6 +602,7 @@ init_decl_processing () super_identifier_node = get_identifier ("super"); continue_identifier_node = get_identifier ("continue"); access0_identifier_node = get_identifier ("access$0"); + classdollar_identifier_node = get_identifier ("class$"); /* for lack of a better place to put this stub call */ init_expr_processing(); diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index e1a0347d0e8..30b9d874928 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -270,6 +270,7 @@ enum java_tree_index JTI_SUPER_IDENTIFIER_NODE, JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE, + JTI_CLASSDOLLAR_IDENTIFIER_NODE, JTI_ONE_ELT_ARRAY_DOMAIN_TYPE, JTI_RETURN_ADDRESS_TYPE_NODE, @@ -460,6 +461,8 @@ extern tree java_global_trees[JTI_MAX]; java_global_trees[JTI_CONTINUE_IDENTIFIER_NODE] /* "continue" */ #define access0_identifier_node \ java_global_trees[JTI_ACCESS0_IDENTIFIER_NODE] /* "access$0" */ +#define classdollar_identifier_node \ + java_global_trees[JTI_CLASSDOLLAR_IDENTIFIER_NODE] /* "class$" */ #define one_elt_array_domain_type \ java_global_trees[JTI_ONE_ELT_ARRAY_DOMAIN_TYPE] /* The type of the return address of a subroutine. */ @@ -1154,6 +1157,7 @@ struct rtx_def * java_lang_expand_expr PARAMS ((tree, rtx, enum machine_mode, #define ID_FINIT_P(ID) ((ID) == finit_identifier_node \ || (ID) == finit_leg_identifier_node) #define ID_CLINIT_P(ID) ((ID) == clinit_identifier_node) +#define ID_CLASSDOLLAR_P(ID) ((ID) == classdollar_identifier_node) /* Access flags etc for a variable/field (a FIELD_DECL): */ diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 6ffa3357c77..a2d41897de7 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -8327,7 +8327,7 @@ build_dot_class_method (class) /* Create the "class$" function */ mdecl = create_artificial_method (class, ACC_STATIC, build_pointer_type (class_type_node), - get_identifier ("class$"), args); + classdollar_identifier_node, args); DECL_FUNCTION_THROWS (mdecl) = build_tree_list (NULL_TREE, no_class_def_found_error); @@ -8401,7 +8401,7 @@ build_dot_class_method_invocation (type) s = build_string (IDENTIFIER_LENGTH (sig_id), IDENTIFIER_POINTER (sig_id)); - return build_method_invocation (build_wfl_node (get_identifier ("class$")), + return build_method_invocation (build_wfl_node (classdollar_identifier_node), build_tree_list (NULL_TREE, s)); } @@ -10427,10 +10427,10 @@ find_applicable_accessible_methods_list (lc, class, name, arglist) search_applicable_methods_list (lc, TYPE_METHODS (class), name, arglist, &list, &all_list); - /* When looking finit$, we turn LC to 1 so that we only search - in class. Note that we should have found something at - this point. */ - if (ID_FINIT_P (name)) + /* When looking finit$ or class$, we turn LC to 1 so that we + only search in class. Note that we should have found + something at this point. */ + if (ID_FINIT_P (name) || ID_CLASSDOLLAR_P (name)) { lc = 1; if (!list) -- 2.11.4.GIT