http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53986 --- Comment #4 from Steven Bosscher <steven at gcc dot gnu.org> 2012-08-05 11:05:56 UTC --- (In reply to comment #3) > I think we should cast to unsigned first, then add. No, see what happens to "case -12" if you use ((unsigned)s_1+16).