https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82494
Bug ID: 82494 Summary: UBSAN in gcc/tree-data-ref.c:3427:16: runtime error: signed integer overflow: 131072 * -131072 cannot be represented in type 'int' Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: rguenth at gcc dot gnu.org Target Milestone: --- With bootstrap-ubsan I see: $ UBSAN_OPTIONS="print_stacktrace=1" ./xgcc -B. /home/marxin/Programming/gcc2/gcc/testsuite/gcc.dg/torture/pr60183.c -c -O3 ../../gcc/tree-data-ref.c:3427:16: runtime error: signed integer overflow: 131072 * -131072 cannot be represented in type 'int' #0 0x3a3b770 in lambda_matrix_right_hermite ../../gcc/tree-data-ref.c:3427 #1 0x3a3c1e3 in analyze_subscript_affine_affine ../../gcc/tree-data-ref.c:3546 #2 0x3a3e406 in analyze_siv_subscript ../../gcc/tree-data-ref.c:3794 #3 0x3a3f8df in analyze_overlapping_iterations ../../gcc/tree-data-ref.c:4041 #4 0x3a42e7e in subscript_dependence_tester_1 ../../gcc/tree-data-ref.c:4582 #5 0x3a43214 in subscript_dependence_tester ../../gcc/tree-data-ref.c:4632 #6 0x3a4361a in compute_affine_dependence(data_dependence_relation*, loop*) ../../gcc/tree-data-ref.c:4691 #7 0x3a43b25 in compute_all_dependences(vec<data_reference*, va_heap, vl_ptr>, vec<data_dependence_relation*, va_heap, vl_ptr>*, vec<loop*, va_heap, vl_ptr>, bool) ../../gcc/tree-data-ref.c:4758 #8 0x3a456c7 in compute_data_dependences_for_loop(loop*, bool, vec<loop*, va_heap, vl_ptr>*, vec<data_reference*, va_heap, vl_ptr>*, vec<data_dependence_relation*, va_heap, vl_ptr>*) ../../gcc/tree-data-ref.c:5156 #9 0x1f8bc55 in tree_predictive_commoning_loop ../../gcc/tree-predcom.c:3050 #10 0x1f8c1c2 in tree_predictive_commoning() ../../gcc/tree-predcom.c:3172 #11 0x1f8c242 in run_tree_predictive_commoning ../../gcc/tree-predcom.c:3197 #12 0x1f8c38d in execute ../../gcc/tree-predcom.c:3226 #13 0x18f223a in execute_one_pass(opt_pass*) ../../gcc/passes.c:2495 #14 0x18f2bcb in execute_pass_list_1 ../../gcc/passes.c:2584 #15 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585 #16 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585 #17 0x18f2d1f in execute_pass_list(function*, opt_pass*) ../../gcc/passes.c:2595 #18 0xd34522 in cgraph_node::expand() ../../gcc/cgraphunit.c:2115 #19 0xd35b07 in expand_all_functions ../../gcc/cgraphunit.c:2251 #20 0xd38201 in symbol_table::compile() ../../gcc/cgraphunit.c:2599 #21 0xd38958 in symbol_table::finalize_compilation_unit() ../../gcc/cgraphunit.c:2692 #22 0x1cdc527 in compile_file ../../gcc/toplev.c:481 #23 0x1ce2c84 in do_compile ../../gcc/toplev.c:2037 #24 0x1ce32b3 in toplev::main(int, char**) ../../gcc/toplev.c:2172 #25 0x3aaf9e0 in main ../../gcc/main.c:39 #26 0x14a79f7caf49 in __libc_start_main (/lib64/libc.so.6+0x20f49) #27 0x7d93b9 in _start (/home/marxin/Programming/gcc2/objdir/gcc/cc1+0x7d93b9) ../../gcc/tree-data-ref.c:3350:16: runtime error: signed integer overflow: 1073741824 + 1073741824 cannot be represented in type 'int' #0 0x3a3af5f in lambda_matrix_row_add ../../gcc/tree-data-ref.c:3350 #1 0x3a3b890 in lambda_matrix_right_hermite ../../gcc/tree-data-ref.c:3432 #2 0x3a3c1e3 in analyze_subscript_affine_affine ../../gcc/tree-data-ref.c:3546 #3 0x3a3e406 in analyze_siv_subscript ../../gcc/tree-data-ref.c:3794 #4 0x3a3f8df in analyze_overlapping_iterations ../../gcc/tree-data-ref.c:4041 #5 0x3a42e7e in subscript_dependence_tester_1 ../../gcc/tree-data-ref.c:4582 #6 0x3a43214 in subscript_dependence_tester ../../gcc/tree-data-ref.c:4632 #7 0x3a4361a in compute_affine_dependence(data_dependence_relation*, loop*) ../../gcc/tree-data-ref.c:4691 #8 0x3a43b25 in compute_all_dependences(vec<data_reference*, va_heap, vl_ptr>, vec<data_dependence_relation*, va_heap, vl_ptr>*, vec<loop*, va_heap, vl_ptr>, bool) ../../gcc/tree-data-ref.c:4758 #9 0x3a456c7 in compute_data_dependences_for_loop(loop*, bool, vec<loop*, va_heap, vl_ptr>*, vec<data_reference*, va_heap, vl_ptr>*, vec<data_dependence_relation*, va_heap, vl_ptr>*) ../../gcc/tree-data-ref.c:5156 #10 0x1f8bc55 in tree_predictive_commoning_loop ../../gcc/tree-predcom.c:3050 #11 0x1f8c1c2 in tree_predictive_commoning() ../../gcc/tree-predcom.c:3172 #12 0x1f8c242 in run_tree_predictive_commoning ../../gcc/tree-predcom.c:3197 #13 0x1f8c38d in execute ../../gcc/tree-predcom.c:3226 #14 0x18f223a in execute_one_pass(opt_pass*) ../../gcc/passes.c:2495 #15 0x18f2bcb in execute_pass_list_1 ../../gcc/passes.c:2584 #16 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585 #17 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585 #18 0x18f2d1f in execute_pass_list(function*, opt_pass*) ../../gcc/passes.c:2595 #19 0xd34522 in cgraph_node::expand() ../../gcc/cgraphunit.c:2115 #20 0xd35b07 in expand_all_functions ../../gcc/cgraphunit.c:2251 #21 0xd38201 in symbol_table::compile() ../../gcc/cgraphunit.c:2599 #22 0xd38958 in symbol_table::finalize_compilation_unit() ../../gcc/cgraphunit.c:2692 #23 0x1cdc527 in compile_file ../../gcc/toplev.c:481 #24 0x1ce2c84 in do_compile ../../gcc/toplev.c:2037 #25 0x1ce32b3 in toplev::main(int, char**) ../../gcc/toplev.c:2172 #26 0x3aaf9e0 in main ../../gcc/main.c:39 #27 0x14a79f7caf49 in __libc_start_main (/lib64/libc.so.6+0x20f49) #28 0x7d93b9 in _start (/home/marxin/Programming/gcc2/objdir/gcc/cc1+0x7d93b9) ../../gcc/tree-data-ref.c:3429:7: runtime error: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself #0 0x3a3b7ca in lambda_matrix_right_hermite ../../gcc/tree-data-ref.c:3429 #1 0x3a3c1e3 in analyze_subscript_affine_affine ../../gcc/tree-data-ref.c:3546 #2 0x3a3e406 in analyze_siv_subscript ../../gcc/tree-data-ref.c:3794 #3 0x3a3f8df in analyze_overlapping_iterations ../../gcc/tree-data-ref.c:4041 #4 0x3a42e7e in subscript_dependence_tester_1 ../../gcc/tree-data-ref.c:4582 #5 0x3a43214 in subscript_dependence_tester ../../gcc/tree-data-ref.c:4632 #6 0x3a4361a in compute_affine_dependence(data_dependence_relation*, loop*) ../../gcc/tree-data-ref.c:4691 #7 0x3a43b25 in compute_all_dependences(vec<data_reference*, va_heap, vl_ptr>, vec<data_dependence_relation*, va_heap, vl_ptr>*, vec<loop*, va_heap, vl_ptr>, bool) ../../gcc/tree-data-ref.c:4758 #8 0x3a456c7 in compute_data_dependences_for_loop(loop*, bool, vec<loop*, va_heap, vl_ptr>*, vec<data_reference*, va_heap, vl_ptr>*, vec<data_dependence_relation*, va_heap, vl_ptr>*) ../../gcc/tree-data-ref.c:5156 #9 0x1f8bc55 in tree_predictive_commoning_loop ../../gcc/tree-predcom.c:3050 #10 0x1f8c1c2 in tree_predictive_commoning() ../../gcc/tree-predcom.c:3172 #11 0x1f8c242 in run_tree_predictive_commoning ../../gcc/tree-predcom.c:3197 #12 0x1f8c38d in execute ../../gcc/tree-predcom.c:3226 #13 0x18f223a in execute_one_pass(opt_pass*) ../../gcc/passes.c:2495 #14 0x18f2bcb in execute_pass_list_1 ../../gcc/passes.c:2584 #15 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585 #16 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585 #17 0x18f2d1f in execute_pass_list(function*, opt_pass*) ../../gcc/passes.c:2595 #18 0xd34522 in cgraph_node::expand() ../../gcc/cgraphunit.c:2115 #19 0xd35b07 in expand_all_functions ../../gcc/cgraphunit.c:2251 #20 0xd38201 in symbol_table::compile() ../../gcc/cgraphunit.c:2599 #21 0xd38958 in symbol_table::finalize_compilation_unit() ../../gcc/cgraphunit.c:2692 #22 0x1cdc527 in compile_file ../../gcc/toplev.c:481 #23 0x1ce2c84 in do_compile ../../gcc/toplev.c:2037 #24 0x1ce32b3 in toplev::main(int, char**) ../../gcc/toplev.c:2172 #25 0x3aaf9e0 in main ../../gcc/main.c:39 #26 0x14a79f7caf49 in __libc_start_main (/lib64/libc.so.6+0x20f49) #27 0x7d93b9 in _start (/home/marxin/Programming/gcc2/objdir/gcc/cc1+0x7d93b9) ../../gcc/tree-data-ref.c:3428:7: runtime error: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself #0 0x3a3b7a0 in lambda_matrix_right_hermite ../../gcc/tree-data-ref.c:3428 #1 0x3a3c1e3 in analyze_subscript_affine_affine ../../gcc/tree-data-ref.c:3546 #2 0x3a3e406 in analyze_siv_subscript ../../gcc/tree-data-ref.c:3794 #3 0x3a3f8df in analyze_overlapping_iterations ../../gcc/tree-data-ref.c:4041 #4 0x3a42e7e in subscript_dependence_tester_1 ../../gcc/tree-data-ref.c:4582 #5 0x3a43214 in subscript_dependence_tester ../../gcc/tree-data-ref.c:4632 #6 0x3a4361a in compute_affine_dependence(data_dependence_relation*, loop*) ../../gcc/tree-data-ref.c:4691 #7 0x3a43b25 in compute_all_dependences(vec<data_reference*, va_heap, vl_ptr>, vec<data_dependence_relation*, va_heap, vl_ptr>*, vec<loop*, va_heap, vl_ptr>, bool) ../../gcc/tree-data-ref.c:4758 #8 0x3a456c7 in compute_data_dependences_for_loop(loop*, bool, vec<loop*, va_heap, vl_ptr>*, vec<data_reference*, va_heap, vl_ptr>*, vec<data_dependence_relation*, va_heap, vl_ptr>*) ../../gcc/tree-data-ref.c:5156 #9 0x1f8bc55 in tree_predictive_commoning_loop ../../gcc/tree-predcom.c:3050 #10 0x1f8c1c2 in tree_predictive_commoning() ../../gcc/tree-predcom.c:3172 #11 0x1f8c242 in run_tree_predictive_commoning ../../gcc/tree-predcom.c:3197 #12 0x1f8c38d in execute ../../gcc/tree-predcom.c:3226 #13 0x18f223a in execute_one_pass(opt_pass*) ../../gcc/passes.c:2495 #14 0x18f2bcb in execute_pass_list_1 ../../gcc/passes.c:2584 #15 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585 #16 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585 #17 0x18f2d1f in execute_pass_list(function*, opt_pass*) ../../gcc/passes.c:2595 #18 0xd34522 in cgraph_node::expand() ../../gcc/cgraphunit.c:2115 #19 0xd35b07 in expand_all_functions ../../gcc/cgraphunit.c:2251 #20 0xd38201 in symbol_table::compile() ../../gcc/cgraphunit.c:2599 #21 0xd38958 in symbol_table::finalize_compilation_unit() ../../gcc/cgraphunit.c:2692 #22 0x1cdc527 in compile_file ../../gcc/toplev.c:481 #23 0x1ce2c84 in do_compile ../../gcc/toplev.c:2037 #24 0x1ce32b3 in toplev::main(int, char**) ../../gcc/toplev.c:2172 #25 0x3aaf9e0 in main ../../gcc/main.c:39 #26 0x14a79f7caf49 in __libc_start_main (/lib64/libc.so.6+0x20f49) #27 0x7d93b9 in _start (/home/marxin/Programming/gcc2/objdir/gcc/cc1+0x7d93b9)