This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
gcc gcc/java/ChangeLog gcc/java/class.c gcc/ja ...
- From: bryce at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org, java-cvs at gcc dot gnu dot org
- Date: 5 Nov 2004 19:30:12 -0000
- Subject: gcc gcc/java/ChangeLog gcc/java/class.c gcc/ja ...
CVSROOT: /cvs/gcc
Module name: gcc
Branch: gcj-abi-2-dev-branch
Changes by: bryce@gcc.gnu.org 2004-11-05 19:30:12
Modified files:
gcc/java : ChangeLog class.c decl.c expr.c java-tree.h
verify-glue.c verify-impl.c verify.h
libjava : ChangeLog link.cc
libjava/include: execution.h jvm.h
libjava/java/lang: Class.h
Log message:
gcc/java:
2004-11-05 Bryce McKinlay <mckinlay@redhat.com>
* link.cc: Include VerifyError.h.
(_Jv_Linker::verify_type_assertions): New. Read and evaluate entries
in the type assertion table.
* include/execution.h (_Jv_CompiledEngine::do_verify): Use
verify_type_assertions.
* include/jvm.h (_Jv_Linker::verify_type_assertions): declare.
* java/lang/Class.h (JV_ASSERT_END_OF_TABLE,
JV_ASSERT_TYPES_COMPATIBLE, JV_ASSERT_IS_INSTANTIABLE): Declare
assertion code values.
(struct _Jv_TypeAssertion): Declare.
(assertion_table): New class field.
(verify): Remove class field.
libjava:
2004-11-05 Bryce McKinlay <mckinlay@redhat.com>
* class.c (make_class_data): Call emit_assertion_table to set the
'assertion_table' field.
(build_signature_for_libgcj): Move here from expr.c.
(add_assertion_table_entry): New function. Callback for assertion
hashtable traversal.
(emit_assertion_table): New. Take class argument, and generate
assertion table DECL based on the TYPE_ASSERTIONS hashtable.
* decl.c (init_decl_processing): Define assertion_entry_type record.
Push 'assertion_table' class field instead of 'verify'.
* expr.c (type_assertion_eq): Compare 'assertion_code' field.
(type_assertion_hash): Include 'assertion_code' in hash.
(add_type_assertion): Rewritten. Take class and assertion_code
arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
(can_widen_reference_to): Use new add_type_assertion() arguments.
* java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
(verify_identifier_node): Removed.
(assertion_entry_type, assertion_table_type): New.
(ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
assertion code definitions.
(struct type_assertion): Add assertion_code. Rename 'source_type'
and 'target_type' to 'op1' and 'op2'.
(add_type_assertion): Declare.
(lang_printable_name_wls): Remove unused definition.
* verify-glue.c: (vfy_is_assignable_from): New. Call
add_type_assertion
to emit runtime assertion.
(vfy_note_stack_type): Clean up non-C90 declarations.
(vfy_note_local_type): Likewise.
* verify.h (vfy_is_assignable_from): Declare.
* verify-impl.c (is_assignable_from_slow): Remove unused function.
(ref_compatible): Rename arguments. Call vfy_is_assignable_from()
instead of is_assignable_from_slow().
(types_compatible): Reinstate ref_compatible() call.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.1352.2.52&r2=1.1352.2.53
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/class.c.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.180.2.16&r2=1.180.2.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/decl.c.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.178.4.12&r2=1.178.4.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/expr.c.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.185.2.19&r2=1.185.2.20
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/java-tree.h.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.197.2.12&r2=1.197.2.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/verify-glue.c.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.1.2.10&r2=1.1.2.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/verify-impl.c.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.1.2.16&r2=1.1.2.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/verify.h.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.1.2.7&r2=1.1.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.2729.2.55&r2=1.2729.2.56
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/link.cc.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.1.2.9&r2=1.1.2.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/include/execution.h.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.1.2.2&r2=1.1.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/include/jvm.h.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.63.6.9&r2=1.63.6.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/java/lang/Class.h.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.63.12.15&r2=1.63.12.16