https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82491

            Bug ID: 82491
           Summary: UBSAN in gcc/gimple-fold.c:6187:6: runtime error:
                    signed integer overflow: 9223372036854775807 * 8
                    cannot be represented in type 'long 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
  Target Milestone: ---

With bootstrap-ubsan I see:

$ UBSAN_OPTIONS="print_stacktrace=1" ./xgcc -B.
/home/marxin/Programming/gcc2/gcc/testsuite/c-c++-common/ubsan/ptr-overflow-sanitization-1.c
-fsanitize=undefined -O3 -g
../../gcc/gimple-fold.c:6187:6: runtime error: signed integer overflow:
9223372036854775807 * 8 cannot be represented in type 'long int'
    #0 0x120ea4d in get_base_constructor ../../gcc/gimple-fold.c:6187
    #1 0x121127f in fold_const_aggregate_ref_1(tree_node*, tree_node*
(*)(tree_node*)) ../../gcc/gimple-fold.c:6509
    #2 0x1211684 in fold_const_aggregate_ref(tree_node*)
../../gcc/gimple-fold.c:6548
    #3 0x11ef391 in maybe_fold_reference ../../gcc/gimple-fold.c:296
    #4 0x1207bd2 in fold_stmt_1 ../../gcc/gimple-fold.c:4651
    #5 0x1207fc9 in fold_stmt(gimple_stmt_iterator*, tree_node*
(*)(tree_node*)) ../../gcc/gimple-fold.c:4739
    #6 0x2226772 in
substitute_and_fold_dom_walker::before_dom_children(basic_block_def*)
../../gcc/tree-ssa-propagate.c:1072
    #7 0x36f262c in dom_walker::walk(basic_block_def*) ../../gcc/domwalk.c:308
    #8 0x2227186 in substitute_and_fold(tree_node* (*)(tree_node*), bool
(*)(gimple_stmt_iterator*)) ../../gcc/tree-ssa-propagate.c:1188
    #9 0x2048303 in ccp_finalize ../../gcc/tree-ssa-ccp.c:960
    #10 0x2054465 in do_ssa_ccp ../../gcc/tree-ssa-ccp.c:2437
    #11 0x205477a in execute ../../gcc/tree-ssa-ccp.c:2480
    #12 0x18f223a in execute_one_pass(opt_pass*) ../../gcc/passes.c:2495
    #13 0x18f2bcb in execute_pass_list_1 ../../gcc/passes.c:2584
    #14 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585
    #15 0x18f2d1f in execute_pass_list(function*, opt_pass*)
../../gcc/passes.c:2595
    #16 0x18ed2ef in do_per_function_toporder(void (*)(function*, void*),
void*) ../../gcc/passes.c:1737
    #17 0x18f5266 in execute_ipa_pass_list(opt_pass*) ../../gcc/passes.c:2935
    #18 0xd36f41 in ipa_passes ../../gcc/cgraphunit.c:2399
    #19 0xd37db5 in symbol_table::compile() ../../gcc/cgraphunit.c:2534
    #20 0xd38958 in symbol_table::finalize_compilation_unit()
../../gcc/cgraphunit.c:2692
    #21 0x1cdc527 in compile_file ../../gcc/toplev.c:481
    #22 0x1ce2c84 in do_compile ../../gcc/toplev.c:2037
    #23 0x1ce32b3 in toplev::main(int, char**) ../../gcc/toplev.c:2172
    #24 0x3aaf9e0 in main ../../gcc/main.c:39
    #25 0x14eeb648cf49 in __libc_start_main (/lib64/libc.so.6+0x20f49)
    #26 0x7d93b9 in _start
(/home/marxin/Programming/gcc2/objdir/gcc/cc1+0x7d93b9)

../../gcc/dwarf2out.c:13598:15: runtime error: signed integer overflow:
9223372036854775789 + 48 cannot be represented in type 'long int'
    #0 0xea2524 in based_loc_descr ../../gcc/dwarf2out.c:13598
    #1 0xeb0bfd in mem_loc_descriptor(rtx_def*, machine_mode, machine_mode,
var_init_status) ../../gcc/dwarf2out.c:15027
    #2 0xeb93ed in loc_descriptor ../../gcc/dwarf2out.c:15974
    #3 0xeb70d8 in loc_descriptor ../../gcc/dwarf2out.c:15784
    #4 0xeb9cb2 in dw_loc_list_1 ../../gcc/dwarf2out.c:16069
    #5 0xebb348 in dw_loc_list ../../gcc/dwarf2out.c:16339
    #6 0xebff4b in loc_list_from_tree_1 ../../gcc/dwarf2out.c:17454
    #7 0xec33a8 in loc_list_from_tree ../../gcc/dwarf2out.c:18058
    #8 0xecbe1a in add_location_or_const_value_attribute
../../gcc/dwarf2out.c:19263
    #9 0xee0ca2 in gen_variable_die ../../gcc/dwarf2out.c:22928
    #10 0xef0500 in gen_decl_die ../../gcc/dwarf2out.c:25393
    #11 0xeecf4a in process_scope_var ../../gcc/dwarf2out.c:24849
    #12 0xeed02c in decls_for_scope ../../gcc/dwarf2out.c:24875
    #13 0xedcab0 in gen_subprogram_die ../../gcc/dwarf2out.c:22421
    #14 0xeefd6a in gen_decl_die ../../gcc/dwarf2out.c:25310
    #15 0xef296b in dwarf2out_decl ../../gcc/dwarf2out.c:25852
    #16 0xef29f4 in dwarf2out_function_decl ../../gcc/dwarf2out.c:25867
    #17 0x1090964 in rest_of_handle_final ../../gcc/final.c:4520
    #18 0x1090f80 in execute ../../gcc/final.c:4562
    #19 0x18f223a in execute_one_pass(opt_pass*) ../../gcc/passes.c:2495
    #20 0x18f2bcb in execute_pass_list_1 ../../gcc/passes.c:2584
    #21 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585
    #22 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585
    #23 0x18f2d1f in execute_pass_list(function*, opt_pass*)
../../gcc/passes.c:2595
    #24 0xd34522 in cgraph_node::expand() ../../gcc/cgraphunit.c:2115
    #25 0xd35b07 in expand_all_functions ../../gcc/cgraphunit.c:2251
    #26 0xd38201 in symbol_table::compile() ../../gcc/cgraphunit.c:2599
    #27 0xd38958 in symbol_table::finalize_compilation_unit()
../../gcc/cgraphunit.c:2692
    #28 0x1cdc527 in compile_file ../../gcc/toplev.c:481
    #29 0x1ce2c84 in do_compile ../../gcc/toplev.c:2037
    #30 0x1ce32b3 in toplev::main(int, char**) ../../gcc/toplev.c:2172
    #31 0x3aaf9e0 in main ../../gcc/main.c:39
    #32 0x14eeb648cf49 in __libc_start_main (/lib64/libc.so.6+0x20f49)
    #33 0x7d93b9 in _start
(/home/marxin/Programming/gcc2/objdir/gcc/cc1+0x7d93b9)

../../gcc/dwarf2out.c:13623:11: runtime error: signed integer overflow:
-9223372036854775779 + -48 cannot be represented in type 'long int'
    #0 0xea2a10 in based_loc_descr ../../gcc/dwarf2out.c:13623
    #1 0xeb0bfd in mem_loc_descriptor(rtx_def*, machine_mode, machine_mode,
var_init_status) ../../gcc/dwarf2out.c:15027
    #2 0xeb93ed in loc_descriptor ../../gcc/dwarf2out.c:15974
    #3 0xeb70d8 in loc_descriptor ../../gcc/dwarf2out.c:15784
    #4 0xeb9cb2 in dw_loc_list_1 ../../gcc/dwarf2out.c:16069
    #5 0xebb348 in dw_loc_list ../../gcc/dwarf2out.c:16339
    #6 0xebff4b in loc_list_from_tree_1 ../../gcc/dwarf2out.c:17454
    #7 0xec33a8 in loc_list_from_tree ../../gcc/dwarf2out.c:18058
    #8 0xecbe1a in add_location_or_const_value_attribute
../../gcc/dwarf2out.c:19263
    #9 0xee0ca2 in gen_variable_die ../../gcc/dwarf2out.c:22928
    #10 0xef0500 in gen_decl_die ../../gcc/dwarf2out.c:25393
    #11 0xeecf4a in process_scope_var ../../gcc/dwarf2out.c:24849
    #12 0xeed02c in decls_for_scope ../../gcc/dwarf2out.c:24875
    #13 0xedcab0 in gen_subprogram_die ../../gcc/dwarf2out.c:22421
    #14 0xeefd6a in gen_decl_die ../../gcc/dwarf2out.c:25310
    #15 0xef296b in dwarf2out_decl ../../gcc/dwarf2out.c:25852
    #16 0xef29f4 in dwarf2out_function_decl ../../gcc/dwarf2out.c:25867
    #17 0x1090964 in rest_of_handle_final ../../gcc/final.c:4520
    #18 0x1090f80 in execute ../../gcc/final.c:4562
    #19 0x18f223a in execute_one_pass(opt_pass*) ../../gcc/passes.c:2495
    #20 0x18f2bcb in execute_pass_list_1 ../../gcc/passes.c:2584
    #21 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585
    #22 0x18f2c80 in execute_pass_list_1 ../../gcc/passes.c:2585
    #23 0x18f2d1f in execute_pass_list(function*, opt_pass*)
../../gcc/passes.c:2595
    #24 0xd34522 in cgraph_node::expand() ../../gcc/cgraphunit.c:2115
    #25 0xd35b07 in expand_all_functions ../../gcc/cgraphunit.c:2251
    #26 0xd38201 in symbol_table::compile() ../../gcc/cgraphunit.c:2599
    #27 0xd38958 in symbol_table::finalize_compilation_unit()
../../gcc/cgraphunit.c:2692
    #28 0x1cdc527 in compile_file ../../gcc/toplev.c:481
    #29 0x1ce2c84 in do_compile ../../gcc/toplev.c:2037
    #30 0x1ce32b3 in toplev::main(int, char**) ../../gcc/toplev.c:2172
    #31 0x3aaf9e0 in main ../../gcc/main.c:39
    #32 0x14eeb648cf49 in __libc_start_main (/lib64/libc.so.6+0x20f49)
    #33 0x7d93b9 in _start
(/home/marxin/Programming/gcc2/objdir/gcc/cc1+0x7d93b9)

Reply via email to