This is the mail archive of the gcc@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: Error Handling Updating (part 2)


On Thu, Aug 16, 2012 at 9:34 AM, Matt Davis <mattdavis9@gmail.com> wrote:
> Hello,
> This is a similar problem I was having yesterday, and I need to
> understand how to fix this.  This is somewhat similar to my previous
> inquiry, I do apologize. In my compiler pass I am inserting a new
> GIMPLE assignment statement after an existing function call statement.
>  This usually works fine, but in one of my cases, the original
> function call statement is at the end of a basic block.  Unfortunately
> the EH data must not be updated properly in the original function call
> statement since I keep ICEing the compiler in
> remove_unreachable_handlers(), at tree-eh.c:3524 on gcc 4.7.1.  The
> gsi_one_before_end_p on that call statement is returning 'false'
> (which seems correct since it is no longer the last statement in that
> block) and the compiler assert is triggered.  Any insight would be
> appreciated, thanks.

You can't insert a call right after a possibly throwing call.  You
have to insert
your call on the non-EH edge instead.

Richard.

> -Matt


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