I ran gcc 162830 on x86 under a tool that checks for integer undefined behaviors. The attached error messages show up when running "make check" and when recompiling gcc.
Each line in the attachment is an error message giving the problematic operator, its srcloc, the types of its operands, and examples of offending values. Let me know if more detail is needed or if it would be better for me to file all 71 bug reports. Thanks, John Regehr
<../../gcc/alias.c, (1896:25)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): -2147483647 right (int32): -4 <../../gcc/alias.c, (322:44)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 399999996 right (int32): 8 <../../gcc/builtins.c, (7681:57)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/builtins.c, (7699:57)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/builtins.c, (7709:25)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/builtins.c, (7717:25)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/combine.c, (10620:62)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/combine.c, (10655:62)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/combine.c, (11350:54)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/combine.c, (7047:63)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/combine.c, (7205:54)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 2147483647 right (int32): 1 <../../gcc/combine.c, (7838:22)> : Op: <<, Reason : Unsigned Left Shift Error: Right operand is negative or is greater than or equal to the width of the promoted left operand, BINARY OPERATION: left (uint32): 4294967295 right (uint32): 4294967291 <../../gcc/config/i386/i386.c, (10253:10)> : Reason : The current index is greater than array size! <../../gcc/config/i386/i386.c, (16316:17)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): 0 right (int32): -2147483648 <../../gcc/config/i386/i386.c, (16362:18)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): 0 right (int32): -2147483648 <../../gcc/config/i386/i386.c, (16473:11)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/dbxout.c, (674:14)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/double-int.c, (115:13)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/double-int.c, (158:21)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 65535 right (int32): 65535 <../../gcc/dse.c, (1636:28)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 2147483647 right (int32): 1 <../../gcc/dwarf2out.c, (4753:46)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/emit-rtl.c, (261:44)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 134217728 right (int32): 50000 <../../gcc/emit-rtl.c, (262:40)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 786432 right (int32): 2500000 <../../gcc/expmed.c, (1092:13)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/expmed.c, (2928:15)> : Op: -=, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/expmed.c, (3107:8)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/expmed.c, (3707:52)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/expmed.c, (3813:23)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/expmed.c, (4151:12)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/expmed.c, (949:38)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/expmed.c, (954:42)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/fold-const.c, (7127:33)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/fold-const.c, (7128:28)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/gcc.c, (8558:21)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 1280858519 right (int32): 1000 <../../gcc/gimple.c, (3304:33)> : Op: <<, Reason : Unsigned Left Shift Error: Right operand is negative or is greater than or equal to the width of the promoted left operand, BINARY OPERATION: left (uint32): 1 right (uint32): 255 <../../gcc/gimple.c, (3304:7)> : Op: <<, Reason : Unsigned Left Shift Error: Right operand is negative or is greater than or equal to the width of the promoted left operand, BINARY OPERATION: left (uint32): 1 right (uint32): 255 <../../gcc/ira-color.c, (1867:12)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): 2147483632 right (int32): -1879048178 <../../gcc/ira-color.c, (1868:17)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): 2147483632 right (int32): -1879048178 <../../gcc/ira-color.c, (394:29)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): -69630937 right (int32): 1000 <../../gcc/ira-costs.c, (1056:15)> : Op: +=, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 2147000000 right (int32): 1000000 <../../gcc/ira-costs.c, (1301:6)> : Op: +=, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 1901515000 right (int32): 1179630000 <../../gcc/ira-costs.c, (1306:27)> : Op: +=, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 1179630000 right (int32): 1179630000 <../../gcc/ira-costs.c, (919:8)> : Op: +=, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 2098120000 right (int32): 65535000 <../../gcc/loop-iv.c, (2218:24)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): 2147483647 right (int32): -2147483648 <../../gcc/lto-streamer-out.c, (418:26)> : Op: <<, Reason : Unsigned Left Shift Error: Right operand is negative or is greater than or equal to the width of the promoted left operand, BINARY OPERATION: left (uint32): 1 right (uint32): 255 <../../gcc/postreload.c, (1628:44)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): 1374389535 right (int32): -776530087 <../../gcc/real.c, (1440:13)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/real.c, (1442:12)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/real.c, (2159:11)> : Op: +=, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 2147483647 right (int32): 1 <../../gcc/rtlanal.c, (3988:51)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/rtlanal.c, (3991:51)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/rtlanal.c, (4096:42)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/simplify-rtx.c, (1192:10)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/simplify-rtx.c, (2565:45)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 2147483647 right (int32): 1 <../../gcc/simplify-rtx.c, (3425:16)> : Op: +, Reason : Signed Addition Overflow, BINARY OPERATION: left (int32): 2147483647 right (int32): 1 <../../gcc/simplify-rtx.c, (3429:16)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/simplify-rtx.c, (3433:16)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 315 right (int32): 214748365 <../../gcc/simplify-rtx.c, (5033:8)> : Op: <<, Reason : Signed Left Shift Error: Right operand is negative or is greater than or equal to the width of the promoted left operand, BINARY OPERATION: left (int32): 204 right (int32): 32 <../../gcc/simplify-rtx.c, (71:24)> : Op: -, Reason : Signed Subtraction Overflow, UNARY OPERATION: right (int32): -2147483648 <../../gcc/stor-layout.c, (1012:47)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 839909376 right (int32): 8 <../../gcc/stor-layout.c, (2322:45)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/stor-layout.c, (2335:34)> : Op: <<, Reason : Signed Left Shift Error: Right operand is negative or is greater than or equal to the width of the promoted left operand, BINARY OPERATION: left (int32): -1 right (int32): -1 <../../gcc/stor-layout.c, (2344:32)> : Op: <<, Reason : Signed Left Shift Error: Right operand is negative or is greater than or equal to the width of the promoted left operand, BINARY OPERATION: left (int32): 1 right (int32): -1 <../../gcc/stor-layout.c, (2344:52)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/stor-layout.c, (2347:54)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/toplev.c, (433:25)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 1280859546 right (int32): 1000 <../../gcc/tree-dfa.c, (759:16)> : Op: *=, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): 839909376 right (int32): 8 <../../gcc/tree-ssa-loop-ivopts.c, (4021:24)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): -1737075662 right (int32): 18 <../../gcc/tree-ssa-structalias.c, (3012:33)> : Op: *, Reason : Signed Multiplication Overflow, BINARY OPERATION: left (int32): -400000000 right (int32): 8 <../../gcc/tree.c, (1759:37)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1 <../../gcc/tree.c, (1760:34)> : Op: -, Reason : Signed Subtraction Overflow, BINARY OPERATION: left (int32): -2147483648 right (int32): 1