2007/11/7, Mikhail Loenko <[EMAIL PROTECTED]>:
> 2007/11/7, Asaf Yaffe <[EMAIL PROTECTED]>:
> > Hi Mikhail,
> >
> > You wrote:
> >
> > I like the idea of simplification which you pointed, but I think this
> > approach is not quite correct in general: the dead code might be in
> > the try block. In this case stackmap locals at the dead block should
> > be assignable to stackmap at the handler_pc instruction.
> >
> > In other words, if catch block accesses locals defined before the try
> >  block and
> > this try block has a dead code, then stackmap for the dead code can't
> > have empty locals: otherwise Java6 verification would fail
> >
> >
> >
> > I am not sure I understand the problem. Assume you "nop" all instructions 
> > in the dead block and finalize it with an "athrow". According to the Java 6 
> > verification rules, the only thing you need is a [][java/lang/Throwable] 
> > StackMap. This is because (from the verification algorithm):
> >
> > 1. A nop instruction is always type safe. The nop instruction does not 
> > affect the type state
> > 2. An athrow instruction is type safe iff the top of the operand stack 
> > matches Throwable
> >
> > The verifier cannot (and will not) check the consistency of this block with 
> > other blocks because this block in unreachable.
>
>
> > It will also not check the consistency of this block with "applicable" 
> > exception handlers because it does not perform this check for "nop" and 
> > "athrow" instructions.
>
> 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

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

Reply via email to