https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87042
Bug ID: 87042
Summary: UBSAN: poly-int.h:1095:5: runtime error: signed
integer overflow: 9223372036854775807 * 8 cannot be
represented in type 'long int'
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
Blocks: 63426
Target Milestone: ---
Maybe a dup of PR85164, but:
$ cat strlen.i
const char a[] = {};
b() { '\0' == a[9223372036854775807]; }
$ UBSAN_OPTIONS=print_stacktrace=1 ./xgcc -B. strlen.i -O1
strlen.i:2:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
2 | b() { '\0' == a[9223372036854775807]; }
| ^
../../gcc/poly-int.h:1095:5: runtime error: signed integer overflow:
9223372036854775807 * 8 cannot be represented in type 'long int'
#0 0xb98b74 in poly_int<1u, poly_result<long, if_nonpoly<int, int,
poly_int_traits<int>::is_poly>::type, poly_coeff_pair_traits<long,
if_nonpoly<int, int, poly_int_traits<int>::is_poly>::type>::result_kind>::type>
operator*<1u, long, int>(poly_int_pod<1u, long> const&, int const&)
../../gcc/poly-int.h:1095
#1 0x23cc1c9 in fully_constant_vn_reference_p(vn_reference_s*)
../../gcc/tree-ssa-sccvn.c:1373
#2 0x23d61f7 in vn_reference_lookup(tree_node*, tree_node*, vn_lookup_kind,
vn_reference_s**, bool) ../../gcc/tree-ssa-sccvn.c:2540
#3 0x23e1b38 in visit_reference_op_load ../../gcc/tree-ssa-sccvn.c:3798
#4 0x23e34a3 in visit_use ../../gcc/tree-ssa-sccvn.c:4163
#5 0x23e43e2 in process_scc ../../gcc/tree-ssa-sccvn.c:4346
#6 0x23e5812 in extract_and_process_scc_for_name
../../gcc/tree-ssa-sccvn.c:4467
#7 0x23e5bc4 in DFS ../../gcc/tree-ssa-sccvn.c:4517
#8 0x23ea154 in sccvn_dom_walker::before_dom_children(basic_block_def*)
../../gcc/tree-ssa-sccvn.c:4956
#9 0x3ada486 in dom_walker::walk(basic_block_def*) ../../gcc/domwalk.c:353
#10 0x23ead4e in run_scc_vn(vn_lookup_kind) ../../gcc/tree-ssa-sccvn.c:5063
#11 0x23f2aa0 in execute ../../gcc/tree-ssa-sccvn.c:6044
#12 0x1a2a1fc in execute_one_pass(opt_pass*) ../../gcc/passes.c:2446
#13 0x1a2ab8d in execute_pass_list_1 ../../gcc/passes.c:2535
#14 0x1a2ac42 in execute_pass_list_1 ../../gcc/passes.c:2536
#15 0x1a2ace1 in execute_pass_list(function*, opt_pass*)
../../gcc/passes.c:2546
#16 0x1a251da in do_per_function_toporder(void (*)(function*, void*),
void*) ../../gcc/passes.c:1688
#17 0x1a2d2b4 in execute_ipa_pass_list(opt_pass*) ../../gcc/passes.c:2894
#18 0xdb3593 in ipa_passes ../../gcc/cgraphunit.c:2407
#19 0xdb434b in symbol_table::compile() ../../gcc/cgraphunit.c:2543
#20 0xdb522e in symbol_table::finalize_compilation_unit()
../../gcc/cgraphunit.c:2788
#21 0x1e2d777 in compile_file ../../gcc/toplev.c:480
#22 0x1e349df in do_compile ../../gcc/toplev.c:2170
#23 0x1e3500d in toplev::main(int, char**) ../../gcc/toplev.c:2305
#24 0x3f49d8a in main ../../gcc/main.c:39
#25 0x7ffff5ca3fea in __libc_start_main ../csu/libc-start.c:308
#26 0x84a529 in _start
(/home/marxin/Programming/gcc2/objdir/gcc/cc1+0x84a529)
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63426
[Bug 63426] [meta-bug] Issues found with -fsanitize=undefined