Hi Mikhail,

As you point out, there is not quote on the spec about the verifier ignoring 
applicable exception handlers. However, consider the following:

Assume the verifier needs to take applicable exception handlers into account 
when verifying the code in a dead-block. Since a StackMap cannot be computed 
for this block (because it is unreachable by the control and data flow 
algorithm) it means that the verification will always fail if the exception 
handler block has local variables in its StackMap. The end result is that a 
dead block will cause verification for the method to fail, which does not make 
any sense.

Therefore, I suggest we will take the risk and assume that the behavior 
described by the ASM Developer Guide is correct. If you like, we can try and 
prototype this with some test cases and see if it really works.

Thanks,
Asaf


----- Original Message ----
From: Mikhail Loenko <[EMAIL PROTECTED]>
To: [email protected]
Sent: Thursday, November 8, 2007 9:29:29 AM
Subject: Re: [drlvm][verifier] Dead-code and Java 6 verification issues

[snip...]

>
> That's what I missed! Could you please provide a link to the quote in
> the spec that nop and athrow are not checked against "applicable"
> exception handlers?

seems like the spec says that it must perform the check...

instructionIsTypeSafe(nop, _Environment, _Offset, StackFrame,
StackFrame, ExceptionStackFrame) :-
exceptionStackFrame(StackFrame, ExceptionStackFrame).

Thanks,
Mikhail





__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Reply via email to