Sat Jan 26 11:27:00 GMT 2002
The attached problem, compiled by javac, causes a VerifyError when run
by gij. The problem appears a rather basic problem in how subroutines
The comments at the bottom of the attachment is my notes from debugging
a more complex program, so aren't directly relevant to this test case.
I think (without having analyzed it too carefully) that trying to test
or set the subroutine field of a 'state' in merge is wrong. The
compile-time verifier has a corresponding 'merge_type_state" function,
and it does not set or test the sub-routine state. Instead, that is
done when processing the 'jsr' opcode Also, push pending block checks
for a transfer out of a subroutine.
I relatively recently had to implement a subroutine_nesting procedure
to check that we're finished with a subroutine.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
More information about the Java