diff options
author | Alexandre Petit-Bianco <apbianco@cygnus.com> | 2000-07-07 00:49:36 +0000 |
---|---|---|
committer | Alexandre Petit-Bianco <apbianco@gcc.gnu.org> | 2000-07-06 17:49:36 -0700 |
commit | 98a52c2ccf0f7c28c910a2bc17d0e97ff9f28bdb (patch) | |
tree | 0d9007d5892ffb0c44e98f6a33be8436e92322e8 /gcc/java/parse.c | |
parent | 24c3c71a8c15e208765dff463ba2b7a3f34fe82a (diff) | |
download | gcc-98a52c2ccf0f7c28c910a2bc17d0e97ff9f28bdb.zip gcc-98a52c2ccf0f7c28c910a2bc17d0e97ff9f28bdb.tar.gz gcc-98a52c2ccf0f7c28c910a2bc17d0e97ff9f28bdb.tar.bz2 |
Java: fixes for the PRs gcj/{271,272,275}.
2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (parser_qualified_classname): Removed parameter
`is_static'.
(create_interface): Removed first passed parameter to
parser_qualified_classname.
(create_class): Likewise. Don't install alias on static
innerclasses. Fixes gcj/275.
2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (maybe_generate_pre_expand_clinit): Don't build a
debugable statement with empty_stmt_node. Fixes gcj/272
2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
* expr.c (build_instanceof): Layout type after it's loaded. Fixes
gcj/271.
(Fix to the PR gcj/271, gcj/272 and gcj/275:
http://sourceware.cygnus.com/ml/java-prs/2000-q3/msg00000.html
http://sourceware.cygnus.com/ml/java-prs/2000-q3/msg00002.html
http://sourceware.cygnus.com/ml/java-prs/2000-q3/msg00001.html )
From-SVN: r34894
Diffstat (limited to 'gcc/java/parse.c')
-rw-r--r-- | gcc/java/parse.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/gcc/java/parse.c b/gcc/java/parse.c index 6d6715e..2910e44 100644 --- a/gcc/java/parse.c +++ b/gcc/java/parse.c @@ -156,7 +156,7 @@ static tree find_field PARAMS ((tree, tree)); static tree lookup_field_wrapper PARAMS ((tree, tree)); static int duplicate_declaration_error_p PARAMS ((tree, tree, tree)); static void register_fields PARAMS ((int, tree, tree)); -static tree parser_qualified_classname PARAMS ((int, tree)); +static tree parser_qualified_classname PARAMS ((tree)); static int parser_check_super PARAMS ((tree, tree, tree)); static int parser_check_super_interface PARAMS ((tree, tree, tree)); static void check_modifiers_consistency PARAMS ((int)); @@ -6347,7 +6347,7 @@ create_interface (flags, id, super) tree id, super; { tree raw_name = EXPR_WFL_NODE (id); - tree q_name = parser_qualified_classname (flags & ACC_STATIC, raw_name); + tree q_name = parser_qualified_classname (raw_name); tree decl = IDENTIFIER_CLASS_VALUE (q_name); EXPR_WFL_NODE (id) = q_name; /* Keep source location, even if refined. */ @@ -6482,7 +6482,7 @@ create_class (flags, id, super, interfaces) tree class_id, decl; tree super_decl_type; - class_id = parser_qualified_classname (0, raw_name); + class_id = parser_qualified_classname (raw_name); decl = IDENTIFIER_CLASS_VALUE (class_id); EXPR_WFL_NODE (id) = class_id; @@ -6538,13 +6538,6 @@ create_class (flags, id, super, interfaces) CLASS_COMPLETE_P (decl) = 1; add_superinterfaces (decl, interfaces); - /* If the class is a top level inner class, install an alias. */ - if (INNER_CLASS_DECL_P (decl) && CLASS_STATIC (decl)) - { - tree alias = parser_qualified_classname (1, raw_name); - IDENTIFIER_GLOBAL_VALUE (alias) = decl; - } - /* Add the private this$<n> field, Replicate final locals still in scope as private final fields mangled like val$<local_name>. This doesn't not occur for top level (static) inner classes. */ @@ -7484,14 +7477,12 @@ unresolved_type_p (wfl, returned) qualification from the current package definition. */ static tree -parser_qualified_classname (is_static, name) - int is_static; +parser_qualified_classname (name) tree name; { tree nested_class_name; - if (!is_static - && (nested_class_name = maybe_make_nested_class_name (name))) + if ((nested_class_name = maybe_make_nested_class_name (name))) return nested_class_name; if (ctxp->package) @@ -10159,7 +10150,7 @@ maybe_generate_pre_expand_clinit (class_type) /* We build the assignment expression that will initialize the field to its value. There are strict rules on static initializers (8.5). FIXME */ - if (TREE_CODE (stmt) != BLOCK) + if (TREE_CODE (stmt) != BLOCK && stmt != empty_stmt_node) stmt = build_debugable_stmt (EXPR_WFL_LINECOL (stmt), stmt); java_method_add_stmt (mdecl, stmt); } |