finallys can execute in two ways: normal and exceptional path.
In the exceptional path, the endfinally has no successors, at least not in
the current function.
In the normal path the finally executes on all leaves from the try and
continues to the target address. You could say that the finally's
successors are all targets of a leave instruction from within the try
region.
[quoted text, click to view] "George" <George@discussions.microsoft.com> wrote in message
news:6207A2B9-922E-4CF8-AF69-AF12536F4300@microsoft.com...
> Hello,
>
> Please someone help me in the following verification question:
>
> I know that verifier shall simulate all possible control flow paths
> through
> the bytecode. So, the verifier shall have a flow graph.
>
> In this graph, I'm wondering, what is the succesor of an "endfinally"
> instruction. Where does the verifier consider that the control goes after
> simulating an "endfinally" instruction?
>
> For example, in case the control is at a "leave t" instruction, the
> verifier
> - I suppose - has a look into the exception handling array and if there
> are
> no "finally" blocks to simulate, it gives the control to the targeted
> intruction, i.e. the instruction with label "t".
>
> So, my question is: "in the (directed) flow graph considered by the
> verifier, what are the edges exiting an endfinally node?"
>
> Any suggestion could be helpful to me.
>
> Thanks.
> George
>