https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127571
Bug ID: 127571
Summary: UBSAN: signed integer overflow: 9223372036854775800 -
-32 cannot be represented in type 'long int' since
r17-4215-g492fbdbf99dc9d
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: jamborm at gcc dot gnu.org
CC: rguenth at gcc dot gnu.org
Blocks: 63426
Target Milestone: ---
Host: x86_64-linux
Target: x86_64-linux
$ UBSAN_OPTIONS="print_stacktrace=1:halt_on_error=1:abort_on_error=1"
/home/mjambor/gcc/mine/b-obj/gcc/xgcc -B/home/mjambor/gcc/mine/b-obj/gcc/
/home/mjambor/gcc/mine/src/gcc/testsuite/gcc.dg/tree-ssa/pr93582-11.c
-fdiagnostics-plain-output -O2 -fdump-tree-fre1 -S -o pr93582-11.s
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:2084:45: runtime error:
signed integer overflow: 9223372036854775800 - -32 cannot be represented in
type 'long int'
#0 0x00000391f4a1 in vn_walk_cb_data::push_partial_def(pd_data, int, int,
long, long) /home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:2084
#1 0x000003946c0e in vn_reference_lookup_3
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:3174
#2 0x00000347d1f7 in walk_non_aliased_vuses(ao_ref*, tree_node*, bool,
void* (*)(ao_ref*, tree_node*, void*), void* (*)(ao_ref*, tree_node*, void*,
translate_flags*), bool (*)(edge_def*,
void*), tree_node* (*)(tree_node*), unsigned int&, void*)
/home/mjambor/gcc/mine/src/gcc/tree-ssa-alias.cc:4000
#3 0x0000039232ee in vn_reference_lookup(tree_node*, tree_node*,
vn_lookup_kind, vn_reference_s**, bool, tree_node**, tree_node*, bool)
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:4335
#4 0x0000039313c3 in visit_reference_op_load
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:6240
#5 0x0000039313c3 in visit_stmt
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:6758
#6 0x000003933536 in process_bb
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:8623
#7 0x0000039391de in do_rpo_vn_1
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:9097
#8 0x000003944e81 in execute
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:9372
#9 0x000002855c90 in execute_one_pass(opt_pass*)
/home/mjambor/gcc/mine/src/gcc/passes.cc:2646
#10 0x000002858dd3 in execute_pass_list_1
/home/mjambor/gcc/mine/src/gcc/passes.cc:2757
#11 0x000002858e1a in execute_pass_list_1
/home/mjambor/gcc/mine/src/gcc/passes.cc:2758
#12 0x000002858edb in execute_pass_list(function*, opt_pass*)
/home/mjambor/gcc/mine/src/gcc/passes.cc:2768
#13 0x00000285d652 in do_per_function_toporder(void (*)(function*, void*),
void*) /home/mjambor/gcc/mine/src/gcc/passes.cc:1785
#14 0x00000285d652 in do_per_function_toporder(void (*)(function*, void*),
void*) /home/mjambor/gcc/mine/src/gcc/passes.cc:1748
#15 0x00000285dcb7 in execute_ipa_pass_list(opt_pass*)
/home/mjambor/gcc/mine/src/gcc/passes.cc:3111
#16 0x00000144ed02 in ipa_passes
/home/mjambor/gcc/mine/src/gcc/cgraphunit.cc:2244
#17 0x00000144ed02 in symbol_table::compile()
/home/mjambor/gcc/mine/src/gcc/cgraphunit.cc:2367
#18 0x00000144ed02 in symbol_table::compile()
/home/mjambor/gcc/mine/src/gcc/cgraphunit.cc:2343
#19 0x00000145314a in symbol_table::finalize_compilation_unit()
/home/mjambor/gcc/mine/src/gcc/cgraphunit.cc:2626
#20 0x000002ec3e29 in compile_file
/home/mjambor/gcc/mine/src/gcc/toplev.cc:482
#21 0x000000c093b6 in do_compile
/home/mjambor/gcc/mine/src/gcc/toplev.cc:2228
#22 0x000000c093b6 in toplev::main(int, char**)
/home/mjambor/gcc/mine/src/gcc/toplev.cc:2396
#23 0x000000c0ca7a in main /home/mjambor/gcc/mine/src/gcc/main.cc:39
#24 0x7f5ad922b53d in __libc_start_call_main (/lib64/libc.so.6+0x2b53d)
(BuildId: 47195f6690701978d2a63f09fb6c4101a75d3d0a)
#25 0x7f5ad922b66a in __libc_start_main_alias_2 (/lib64/libc.so.6+0x2b66a)
(BuildId: 47195f6690701978d2a63f09fb6c4101a75d3d0a)
#26 0x000000c0d784 in _start ../sysdeps/x86_64/start.S:115
during GIMPLE pass: fre
dump file: pr93582-11.c.044t.fre1
/home/mjambor/gcc/mine/src/gcc/testsuite/gcc.dg/tree-ssa/pr93582-11.c: In
function 'foo':
/home/mjambor/gcc/mine/src/gcc/testsuite/gcc.dg/tree-ssa/pr93582-11.c:16:1:
internal compiler error: Aborted
0x8d3464f internal_error(char const*, ...)
/home/mjambor/gcc/mine/src/gcc/diagnostic-global-context.cc:787
0x2ec1c86 crash_signal
/home/mjambor/gcc/mine/src/gcc/toplev.cc:325
0xc04f84 __sanitizer::Abort()
/home/mjambor/gcc/mine/src/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp:165
0x92240bb __sanitizer::Die()
/home/mjambor/gcc/mine/src/libsanitizer/sanitizer_common/sanitizer_termination.cpp:58
0x9224bd9 __ubsan::ScopedReport::~ScopedReport()
/home/mjambor/gcc/mine/src/libsanitizer/ubsan/ubsan_diag.cpp:402
0x921a3c3 handleIntegerOverflowImpl<__ubsan::Value>
/home/mjambor/gcc/mine/src/libsanitizer/ubsan/ubsan_handlers.cpp:231
0x921deff __ubsan_handle_sub_overflow
/home/mjambor/gcc/mine/src/libsanitizer/ubsan/ubsan_handlers.cpp:244
0x391f4a1 vn_walk_cb_data::push_partial_def(pd_data, int, int, long, long)
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:2084
0x3946c0e vn_reference_lookup_3
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:3174
0x347d1f7 walk_non_aliased_vuses(ao_ref*, tree_node*, bool, void*
(*)(ao_ref*, tree_node*, void*), void* (*)(ao_ref*, tree_node*, void*,
translate_flags*), bool (*)(edge_def*, void*), tree _node* (*)(tree_node*),
unsigned int&, void*)
/home/mjambor/gcc/mine/src/gcc/tree-ssa-alias.cc:4000
0x39232ee vn_reference_lookup(tree_node*, tree_node*, vn_lookup_kind,
vn_reference_s**, bool, tree_node**, tree_node*, bool)
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:4335
0x39313c3 visit_reference_op_load
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:6240
0x39313c3 visit_stmt
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:6758
0x3933536 process_bb
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:8623
0x39391de do_rpo_vn_1
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:9097
0x3944e81 execute
/home/mjambor/gcc/mine/src/gcc/tree-ssa-sccvn.cc:9372
The previous commit does not have this isse.
For the record, the UBSAN instrumented GCC was built by configuring it with
../src/configure --prefix=/home/mjambor/gcc/mine/inst
--enable-languages=c,c++ --enable-checking=release --disable-multilib
--enable-host-shared --with-build-config=bootstrap-ubsan --disable-libgomp
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63426
[Bug 63426] [meta-bug] Issues found with -fsanitize=undefined