aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/parse.h
diff options
context:
space:
mode:
authorAlexandre Petit-Bianco <apbianco@cygnus.com>1998-12-03 17:53:02 +0000
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>1998-12-03 09:53:02 -0800
commit1886c9d8361f7ba8931501dd8658026f5b3afcdd (patch)
tree6d202291abbf1bce63f1d1a56ad31396e3086b50 /gcc/java/parse.h
parent2036a15c6d3583a413934700c527ae626be01075 (diff)
downloadgcc-1886c9d8361f7ba8931501dd8658026f5b3afcdd.zip
gcc-1886c9d8361f7ba8931501dd8658026f5b3afcdd.tar.gz
gcc-1886c9d8361f7ba8931501dd8658026f5b3afcdd.tar.bz2
java-tree.h (java_layout_seen_class_methods): New function prototype.
Thu Dec 3 17:11:12 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> * java-tree.h (java_layout_seen_class_methods): New function prototype. (LAYOUT_SEEN_CLASS_METHODS): Macro removed. * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods. * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro. * parse.y (method_declarator:): Defined action. (issue_warning_error_from_context): input_filename saved, set to the appropriate value and restored after java_error is called. (build_unresolved_array_type): Fixed comment. (register_fields): Use PROMOTE_RECORD_IF_COMPLETE. (method_header): Deal with return type the same way type are handled for fields and method's parameters and local variables types are handled. (check_method_redefinition): Removed extra CR. (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE. (java_layout_seen_class_methods): New function. (java_layout_classes): Call java_layout_seen_class_methods. Handles an obsolete way of declaring methods returning an array. Does a better job at laying out class methods before code generation. From-SVN: r24077
Diffstat (limited to 'gcc/java/parse.h')
-rw-r--r--gcc/java/parse.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/java/parse.h b/gcc/java/parse.h
index fa475af..79c6c78b 100644
--- a/gcc/java/parse.h
+++ b/gcc/java/parse.h
@@ -444,6 +444,12 @@ static jdeplist *reverse_jdep_list ();
} \
} \
}
+/* Promote a type if it won't be registered as a patch */
+#define PROMOTE_RECORD_IF_COMPLETE(TYPE, IS_INCOMPLETE) \
+ { \
+ if (!(IS_INCOMPLETE) && TREE_CODE (TYPE) == RECORD_TYPE) \
+ (TYPE) = promote_type (TYPE); \
+ }
/* Insert a DECL in the current block */
#define BLOCK_CHAIN_DECL(NODE) \