Bytecode verification

Per Bothner bothner at
Tue Apr 29 17:00:59 PDT 1997

> Now while I was doing this I came
> across one aspect of the verification which doesn't seem to be well
> documented in the JVM book.  Here's the problem: What types should the
> local variables be given at the start of an exception handler?

It seems clear to me.  See 4th sentence page 130 - an exception
handler is a valid successor to *any* instruction in the associated
exception block.

> Should is be a merge of all possible locals from anywhere in the exception
> block?  This seems rather heavy handed to me, but perhas there's an
> alternative?

Well, at least conceptually, that seems to be what is needed.
But I agree, that seems a bit expensive.  Some simplifications seem
easy - not doing a merge for instructions that cannot throw
an exception.  And you only need to do a merge when the types
of a local variable has changed.  So on the whole, I don't think
it should be too bad.

	--Per Bothner
Cygnus Solutions     bothner at

More information about the kaffe mailing list