------- Comment #23 from rguenth at gcc dot gnu dot org 2008-01-15 09:45 ------- I don't see where there is a problem with widening conversions. The problem is we re-use the (unsigned : 24) i; value for the comparison, which looks reasonable, but this _narrowing_ conversion is not reflected by actual code in expand.
I believe the only way without touching expand too much is to make the frontend more explicit (and of course generate code for widening/narrowing conversions). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33887