diff options
author | Tom Tromey <tromey@redhat.com> | 2003-08-12 20:34:51 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2003-08-12 20:34:51 +0000 |
commit | aecf41099bac0258050c052bdc1892e8b4a5d145 (patch) | |
tree | b0eccc2bad8dc4ad0fc0c2540ee347467640fdec /gcc/java/jcf-write.c | |
parent | b9172475adce3fec9e36fe6b98eeedba31c0d1f0 (diff) | |
download | gcc-aecf41099bac0258050c052bdc1892e8b4a5d145.zip gcc-aecf41099bac0258050c052bdc1892e8b4a5d145.tar.gz gcc-aecf41099bac0258050c052bdc1892e8b4a5d145.tar.bz2 |
parse.y (java_check_regular_methods): Typo fixes.
* parse.y (java_check_regular_methods): Typo fixes. Call
check_interface_throws_clauses. Use
check_concrete_throws_clauses.
(check_interface_throws_clauses): New function.
(check_concrete_throws_clauses): New function.
(hack_is_accessible_p): New function.
(find_most_specific_methods_list): Added FIXME.
* typeck.c (lookup_do): Use `flags' argument to decide what to
do. Reimplemented.
(lookup_argument_method_generic): New function.
(lookup_argument_method2): Removed.
* jcf.h (ACC_INVISIBLE): New define.
* jcf-write.c (generate_classfile): Skip invisible methods.
* class.c (add_miranda_methods): New function.
(layout_class_methods): Use it.
(get_access_flags_from_decl): Use ACC_INVISIBLE.
* java-tree.h (METHOD_INVISIBLE): New define.
(lang_decl_func) [invisible]: New field.
(lookup_argument_method_generic): Declare.
(SEARCH_INTERFACE): New define.
(SEARCH_SUPER): Likewise.
(SEARCH_ONLY_INTERFACE): Likewise.
(SEARCH_VISIBLE): Likewise.
(lookup_argument_method2): Removed declaration.
From-SVN: r70388
Diffstat (limited to 'gcc/java/jcf-write.c')
-rw-r--r-- | gcc/java/jcf-write.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c index 44c9ec1..3609807 100644 --- a/gcc/java/jcf-write.c +++ b/gcc/java/jcf-write.c @@ -2919,6 +2919,12 @@ generate_classfile (tree clas, struct jcf_partial *state) tree type = TREE_TYPE (part); tree save_function = current_function_decl; int synthetic_p = 0; + + /* Invisible Miranda methods shouldn't end up in the .class + file. */ + if (METHOD_INVISIBLE (part)) + continue; + current_function_decl = part; ptr = append_chunk (NULL, 8, state); i = get_access_flags (part); PUT2 (i); |