Do not produce empty try-finally statements

Jan Hubicka
Mon Jan 20 16:22:00 GMT 2014

> Yes.  Say, this could be surrounded by some try/catch, if we do it the first
> way, a would be still considered live across the EH path to whatever catches
> it.
> The EH optimizations involving cleanups with only clobbers in them are that
> if at the end of the cleanup after only CLOBBER stmts you would rethrow the exception
> externally, then the clobber isn't needed and the whole cleanup can be
> removed.  And, if it rethrows somewhere internally, we can move the clobber
> stmts to the landing pad of wherever it would be caught.

OK, I still do not see how ehclanup1 can then safely remove them pre-inline
given that the whole function body can be inlined into another containing the
outer EH region.  If this is valid, why we can not just eliminate EH in those
outer clobber try..finally as part of ehlowering earlier?

> 	Jakub

More information about the Gcc-patches mailing list