------- Additional Comments From schlie at comcast dot net  2005-01-14 19:40 
-------
(In reply to comment #3)
>          int val = i ? i : -1;
> 
> we convert it to unsigned because it gets promoted to unsigned because i is 
> unsigned and then
> there is an implicit cast to int. so the type of "i ? i : -1" is unsigned and 
> there is an implicit cast to int.

Then either the semantic definition of the middle-end's w = (x ? y : z) needs 
to preserve y : z types,
or it can not be considered equilvelent to if(x){ w = y; w = z;}, it would seem?

which would seem fine, if the middle-end trasformed:

     w = (x ? y : z)  =>  w = (x ? (max y z)y : (max y z)z) 

internallly, or something like that.




-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19437

Reply via email to