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: PR middle-end/44485 (error_mark instatement)


Hi,

On Sat, 12 Jun 2010, Richard Guenther wrote:

> > after function is found noreturn, we have to remove its return value. 
> > ÂUse of the return value remains in the caller function body until 
> > next removal of unreachable code. ÂFor this reason I added code 
> > replacing SSA_NAME with error_mark.
> >
> > This unfortunately triggers ICE when fixup_cfg decide to update on of 
> > the statements (this happens when the other statement is also call).
> >
> > THis patch just modify fixup_noreturn_call to remove those basic 
> > blocks proactively. It also seems to fix the Ada problem with the same 
> > symptom.

I think I have a better idea below.

> > + Â Â Â Â bitmap_head blocks;
> > + Â Â Â Â bitmap_initialize (&blocks, &bitmap_default_obstack);
> 
> I know you like to replace all bitmaps by bitmap_head, but in this
> case please use a bitmap and the usual BITMAP_ALLOC/FREE.
> 
> Ok with that change.

Actually I think it would be best (if the idea works) to replace the 
defining statement of that SSA name with a gimple_nop (and take it out of 
any BB), so that it becomes a normal valid use of an uninitialized SSA 
name, without going over any of its uses or having to adjust them, or 
allocating/freeing this bitmap.


Ciao,
Michael.

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