This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa] Removal of gotos from cfg based ir


On Fri, 2003-11-14 at 12:29, Andrew Haley wrote:
> Andrew MacLeod writes:
>  > On Fri, 2003-11-14 at 11:58, Andrew Haley wrote:
>  > > Andrew MacLeod writes:
>  > >  > 
>  > >  > 
>  > >  > How does java determine where an expression might trap to?
>  > > 
>  > > "Exceptions are precise: when the transfer of control takes place, all
>  > > effects of the statements executed and expressions evaluated before
>  > > the point from which the exception is thrown must appear to have taken
>  > > place. No expressions, statements, or parts thereof that occur after
>  > > the point from which the exception is thrown may appear to have been
>  > > evaluated. If optimized code has speculatively executed some of the
>  > > expressions or statements which follow the point at which the
>  > > exception occurs, such code must be prepared to hide this speculative
>  > > execution from the user-visible state of the program."
>  > > 
>  > How does it determine *where* the exception is goig to go?
>  > 
>  > ie, if there are 4 stmts in a row than might trap, how do you know where
>  > the exception might go?
> 
> They will trap to the handler for the region they're in.
> 
>  > Are they all contained inside a TRY block?
> 
> Yes.
> 
>  > so to make a stmt trap to a different label, you need to be in a
>  > different TRY block?
> 
> Or to have a different exception.  You can have handlers for divide
> overflow and null pointer traps, for example, and these can have
> different handlers.
> 
DIfferent handlers, but they are all within the same TRY region, and
they simply have different CATCHs, like in c++?

So within a TRY region, an exception on any of these stmts is
transferred to the same Catch handling region/landing pad/ whatever? All
NULL traps will go to the same label, all overflows go to the same label
etc?  SO we can characterize all the stmts within a region the same way?

and can you resume back to where you were, ie the next stmt, or is
control premanently in the handler now?

Andrew




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]