diff options
author | Hans Boehm <Hans_Boehm@hp.com> | 2001-12-14 19:01:02 +0000 |
---|---|---|
committer | Hans Boehm <hboehm@gcc.gnu.org> | 2001-12-14 19:01:02 +0000 |
commit | eec875422f79e536fcde443bfe8c0a01b260deb2 (patch) | |
tree | def86bbb77acbb0823471cf90f10ce49709dfe9d /gcc/java/decl.c | |
parent | abf80f8ff8818e104126e16df6bfcc97587a9cce (diff) | |
download | gcc-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.c | 6 |
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", |