aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/decl.c
diff options
context:
space:
mode:
authorHans Boehm <Hans_Boehm@hp.com>2001-12-14 19:01:02 +0000
committerHans Boehm <hboehm@gcc.gnu.org>2001-12-14 19:01:02 +0000
commiteec875422f79e536fcde443bfe8c0a01b260deb2 (patch)
treedef86bbb77acbb0823471cf90f10ce49709dfe9d /gcc/java/decl.c
parentabf80f8ff8818e104126e16df6bfcc97587a9cce (diff)
downloadgcc-eec875422f79e536fcde443bfe8c0a01b260deb2.zip
gcc-eec875422f79e536fcde443bfe8c0a01b260deb2.tar.gz
gcc-eec875422f79e536fcde443bfe8c0a01b260deb2.tar.bz2
class.c (get_dispatch_table): Fix java vtable layout for TARGET_VTABLE_USES_DESCRIPTORS.
* class.c (get_dispatch_table): Fix java vtable layout for TARGET_VTABLE_USES_DESCRIPTORS. * decl.c (java_init_decl_processing): Initialize alloc_no_finalizer_node, finalize_identifier_node. * expr.c (class_has_finalize_method): New function. (expand_java_NEW): Generate calls for finalizer-free allocation. (build_invokevirtual): Fix java vtable layout for TARGET_VTABLE_USES_DESCRIPTORS. * java-tree.h (enum java_tree_index): New entries: JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE. (alloc_no_finalizer_node, finalize_deintifier_node): New macros. (class_has_finalize_method): declare. (HAS_FINALIZER_P): New macro. * parse.y (patch_invoke): Generate calls for finalizer-free allocation. From-SVN: r48004
Diffstat (limited to 'gcc/java/decl.c')
-rw-r--r--gcc/java/decl.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index 0b1e016..17b3607 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -586,6 +586,7 @@ java_init_decl_processing ()
instinit_identifier_node = get_identifier ("instinit$");
void_signature_node = get_identifier ("()V");
length_identifier_node = get_identifier ("length");
+ finalize_identifier_node = get_identifier ("finalize");
this_identifier_node = get_identifier ("this");
super_identifier_node = get_identifier ("super");
continue_identifier_node = get_identifier ("continue");
@@ -729,6 +730,11 @@ java_init_decl_processing ()
build_function_type (ptr_type_node, t),
0, NOT_BUILT_IN, NULL);
DECL_IS_MALLOC (alloc_object_node) = 1;
+ alloc_no_finalizer_node =
+ builtin_function ("_Jv_AllocObjectNoFinalizer",
+ build_function_type (ptr_type_node, t),
+ 0, NOT_BUILT_IN, NULL);
+ DECL_IS_MALLOC (alloc_no_finalizer_node) = 1;
t = tree_cons (NULL_TREE, ptr_type_node, endlink);
soft_initclass_node = builtin_function ("_Jv_InitClass",