diff options
author | Andrew Haley <aph@redhat.com> | 2007-12-18 14:06:15 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 2007-12-18 14:06:15 +0000 |
commit | 0741e2aff181cddb7235b45dc3102ebc76815aa3 (patch) | |
tree | 9bce766e3768b6f93b5136c4fb071bceb45fa58e /gcc/java/jcf-parse.c | |
parent | ae0bce62c6dbce0a5bf288b63dc569de8ba657ad (diff) | |
download | gcc-0741e2aff181cddb7235b45dc3102ebc76815aa3.zip gcc-0741e2aff181cddb7235b45dc3102ebc76815aa3.tar.gz gcc-0741e2aff181cddb7235b45dc3102ebc76815aa3.tar.bz2 |
re PR java/27643 (ICE in java_mark_cni_decl_local compiling bytecode->native)
2007-12-18 Andrew Haley <aph@redhat.com>
PR java/27643
* jcf-parse.c (java_parse_file): Remove call to
java_mark_class_local.
(parse_class_file): Reinstate call to java_mark_class_local here.
* decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
already set, call java_mangle_decl() and make_decl_rtl() to
rewrite its name as a hidden alias.
From-SVN: r131036
Diffstat (limited to 'gcc/java/jcf-parse.c')
-rw-r--r-- | gcc/java/jcf-parse.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c index ab2a385..67590a4 100644 --- a/gcc/java/jcf-parse.c +++ b/gcc/java/jcf-parse.c @@ -1596,6 +1596,8 @@ parse_class_file (void) file_start_location = input_location; (*debug_hooks->start_source_file) (input_line, input_filename); + java_mark_class_local (current_class); + gen_indirect_dispatch_tables (current_class); for (method = TYPE_METHODS (current_class); @@ -1967,13 +1969,6 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED) } } - /* Do this before lowering any code. */ - for (node = current_file_list; node; node = TREE_CHAIN (node)) - { - if (CLASS_FILE_P (node)) - java_mark_class_local (TREE_TYPE (node)); - } - for (node = current_file_list; node; node = TREE_CHAIN (node)) { input_location = DECL_SOURCE_LOCATION (node); |