PATCH handling of Java builtins; fixes super bytecode calls

Per Bothner per@bothner.com
Mon Feb 18 02:15:00 GMT 2002


I tracked down a bug to the fact that super.f() when emitted as
bytecode used a invokevirtual instead of an invokespecial opcode.
This turned out to be due to the CALL_WITH_SUPER flag being dropped.
This is turn was because Tom's recent patches for optimizing builtin
functions would create a new CALL_EXPR, even when not optimizing,
and the CALL_WITH_SUPER flag was not being copied. I figured rather
than the obvious fix of copying the CALL_WITH_SUPER flag it would be
better just retain the old CALL_EXPR node instead of creating a new
one. So I dropped Tom's build_call_or_builtin and replaced it with a
check_for_builtin function.
Tom, could you check that builtins are still being optimized with
this patch?
-- 
	--Per Bothner
per@bothner.com http://www.bothner.com/per/
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: super.patch
URL: <http://gcc.gnu.org/pipermail/java/attachments/20020218/e270013d/attachment.ksh>


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /