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 

Reply via email to