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)

Reply via email to