http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56250
--- Comment #3 from Ishiura Lab Compiler Team <ishiura-compiler at ml dot kwansei.ac.jp> 2013-02-08 01:59:18 UTC --- (In reply to comment #1) > When I do this: > unsigned x = 2; > unsigned t = (x/2); > unsigned t1 = -t; > unsigned t2 = t2/2; > > t2 is 0 which is correct. I don't see why 2147483647 is correct. The last line should be unsigned t2 = t1/2;