aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/java-tree.h
diff options
context:
space:
mode:
authorAlexandre Petit-Bianco <apbianco@cygnus.com>2000-03-23 07:01:24 +0000
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>2000-03-22 23:01:24 -0800
commit165f37bc07e0d8ea4511cebeca2ed763be278f81 (patch)
treeadf1ca92ac2684768b4f5b55b6b09d452804b8b9 /gcc/java/java-tree.h
parente4a3c2f682062d253798e0c177fbd400f5f70d60 (diff)
downloadgcc-165f37bc07e0d8ea4511cebeca2ed763be278f81.zip
gcc-165f37bc07e0d8ea4511cebeca2ed763be278f81.tar.gz
gcc-165f37bc07e0d8ea4511cebeca2ed763be278f81.tar.bz2
[multiple changes]
2000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (check_abstract_method_definitions): New local `end_type_reached'. Make sure we also consider `end_type'. (java_check_abstract_method_definitions): Make sure we also eventually consider `java.lang.Object'. (maybe_use_access_method): Don't use access method if not a pure inner class or if the method's context is right. (find_applicable_accessible_methods_list): New static `object_done'. Don't search abstract classes as interfaces. Fixed indentation. Fixed the `java.lang.Object' only search. Search class' interface(s) first, fully search enclosing contexts. (find_most_specific_methods_list): Pick closest candidates when they're all abstract. 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (check_method_types_complete): New function. (create_class): Reset anonymous class counter only when seeing an non inner classe. (java_complete_class): JDEP_METHOD: Don't recompute signature if incomplete. 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com> * class.c (build_static_ref): Fixed indentation in comment. * java-tree.def (TRY_EXPR): Fixed typo in name. (CLASS_LITERAL): Likewise. * java-tree.h: (TYPE_DOT_CLASS): New macro. (struct lang_type): New field `dot_class'. * jcf-write.c (generate_bytecode_insns): Fixed error message. (generate_classfile): Method `class$' is synthetic. * parse.y (build_do_class_method): New function. (build_dot_class_method_invocation): Likewise. (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary. (resolve_qualified_expression_name): Handle CLASS_LITERAL. (qualify_ambiguous_name): Likewise. (patch_incomplete_class_ref): Invoke synthetic method if necessary. (build_try_statement): Fixed leading comment. 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous classes. * parse.y (patch_method_invocation): Handle anonymous classes creation in static context. 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro. * parse.y (resolve_qualified_expression_name): Use it. (patch_method_invocation): Likewise. 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (register_incomplete_type): JDEP_ENCLOSING set depending on the type of dependency which dictates what the current class is. (unresolved_type_p): Resolved types limited to the current class. (For details, see: http://gcc.gnu.org/ml/gcc-patches/2000-03/msg00790.html) From-SVN: r32701
Diffstat (limited to 'gcc/java/java-tree.h')
-rw-r--r--gcc/java/java-tree.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h
index 96bfe4f..5aaceee 100644
--- a/gcc/java/java-tree.h
+++ b/gcc/java/java-tree.h
@@ -547,6 +547,9 @@ struct lang_decl_var
#define TYPE_FINIT_STMT_LIST(T) (TYPE_LANG_SPECIFIC(T)->finit_stmt_list)
#define TYPE_CLINIT_STMT_LIST(T) (TYPE_LANG_SPECIFIC(T)->clinit_stmt_list)
#define TYPE_II_STMT_LIST(T) (TYPE_LANG_SPECIFIC(T)->ii_block)
+/* The decl of the synthetic method `class$' used to handle `.class'
+ for non primitive types when compiling to bytecode. */
+#define TYPE_DOT_CLASS(T) (TYPE_LANG_SPECIFIC(T)->dot_class)
struct lang_type
{
@@ -557,6 +560,10 @@ struct lang_type
tree finit_stmt_list; /* List of statements $finit$ will use */
tree clinit_stmt_list; /* List of statements <clinit> will use */
tree ii_block; /* Instance initializer block */
+ tree dot_class; /* The decl of the `class$' function that
+ needs to be invoked and generated when
+ compiling to bytecode to implement
+ <non_primitive_type>.class */
};
#ifdef JAVA_USE_HANDLES