This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gcc/gcc/java ChangeLog verify.c parse.y jcf-pa ...


CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcj-abi-2-dev-branch
Changes by:	aph@gcc.gnu.org	2004-04-16 12:47:16

Modified files:
	gcc/java       : ChangeLog verify.c parse.y jcf-parse.c 
	                 java-tree.h expr.c class.c 

Log message:
	2004-04-16  Andrew Haley  <aph@redhat.com>
	
	* verify.c (check_pending_block): Disable subroutine checks.
	(defer_merging): New function.
	(merge_types): If types are dummy, use defer_merging to combine them.
	(verify_jvm_instructions): If invocation is invokeinterface and
	target is dummy, assume target really is an interface.
	
	* parse.y (patch_invoke): Break out call to java_create_object.
	
	* lang.c (flag_verify_invocations): New.
	
	* jcf-parse.c (load_class): If we've already failed to load a
	class, don't try again.
	(load_class): If we can't find a .class file, don't fail, but emit
	a warning.
	(parse_class_file): Don't act on dummy methods.
	
	* java-tree.h (flag_verify_invocations): New.
	(TYPE_DUMMY): New.
	(lang_type.dummy_class): New field.
	(java_create_object): New function.
	(METHOD_DUMMY): New.
	
	* expr.c (build_field_ref): Widen field offset.
	(pop_type_0): If the type in stack_type_map is a TREE_LIST, check
	that each of its elements is compatible with the one we're
	popping.
	(pop_type_0): Issue a warning to say that we need to generate a
	runtime check.
	(java_create_object): New function.
	(build_field_ref): Only generate hard refs if we're not using
	indirect dispatch.
	(expand_java_field_op): If we're using !verify_invocations and we
	see a missing field, generate a decl for it.
	
	(expand_invoke): If a class doesn't have the method we seek and
	we're using !flag_verify_invocations, generate a decl for the
	method now.
	
	(build_known_method_ref): Always use indirect dispatch via the
	atable for static methods.
	
	(expand_java_NEW): Break out object creation into new function,
	java_create_object.
	
	(can_widen_reference_to): Issue a warning to say that we need to
	generate a runtime check.
	
	* class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
	(make_method_value): Also use index for interfaces.
	(make_class_data): Skip dummy field for inherited data.
	Don't build method array for dummy methods.
	Set size_in_byte to -1 when using inirect dispatch
	Don't build a hard class ref if we don't have a hard ref to our
	superclass, or if we're using inirect dispatch.
	Null out dispatch tables.
	
	(layout_class_method): Don't complain about non-static method
	overrides static method is method is artificial.
	
	(build_static_field_ref): Disable atable references to static
	fields for the time being.
	
	(layout_class_methods): Check for CLASS_INTERFACE as
	well as CLASS_ABSTRACT.

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&r2=1.1352.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/verify.c.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.59&r2=1.59.10.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/parse.y.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.474&r2=1.474.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/jcf-parse.c.diff?cvsroot=gcc&only_with_tag=gcj-abi-2-dev-branch&r1=1.158&r2=1.158.4.1
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&r2=1.197.2.1
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&r2=1.185.2.1
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&r2=1.180.2.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]