http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56956
--- Comment #2 from Dan Gohman <sunfish at google dot com> 2013-04-15 03:53:10 UTC --- (In reply to comment #1) > I think 'x' can not present negative value. The unary minus operator is defined for unsigned types. It doesn't produce signed overflow.