> For what it's worth, I tried to recreate the ICE after removing the
> trap insertion, but failed.  So I'm not even sure the trap insertion
> is fixing a real problem any more.  It works at the moment simply
> because it treats the call through a cast as a call through a function
> pointer, and therefore does not inline it.
>
> The Objective C frontend does ICE on the test case which Yuri pointed
> out, but that ICE is independent of the code in c-typeck.c.  As far as
> I can tell in two minutes, that's a type error in the Objective C
> frontend: it passes "int d = (double) x;" to the middle-end, and the
> middle-end ICEs trying to assign a double value to an int variable.
>
> Ian
>   

This is explained why gcc-4.2 does ICE in objc mode but gcc-4.1
successfully generates
call even for problematic casts (with casting to void (*)() trick).



Reply via email to