https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99824
--- Comment #13 from Martin Liška <marxin at gcc dot gnu.org> --- Reduced test-case: $ cat ice.i unsigned int strlen(char *s) { for (; *s;) ; } struct i2c_adapter { char name[48]; }; struct { int instance; struct i2c_adapter i2c_adap[]; } * init_cx18_i2c_cx; const struct i2c_adapter cx18_i2c_adap_template = {""}; int init_cx18_i2c___trans_tmp_1; void init_cx18_i2c() { int i = 0; for (;; i++) { init_cx18_i2c_cx->i2c_adap[i] = cx18_i2c_adap_template; init_cx18_i2c___trans_tmp_1 = strlen(init_cx18_i2c_cx->i2c_adap[i].name); } } $ gcc -O2 ice.i -c ice.i:2:1: warning: conflicting types for built-in function ‘strlen’; expected ‘long unsigned int(const char *)’ [-Wbuiltin-declaration-mismatch] 2 | strlen(char *s) { | ^~~~~~ ice.i:1:1: note: ‘strlen’ is declared in header ‘<string.h>’ +++ |+#include <string.h> 1 | unsigned int during GIMPLE pass: fre ice.i: In function ‘init_cx18_i2c’: ice.i:26:1: internal compiler error: in set_min_and_max_values_for_integral_type, at stor-layout.c:2819 26 | } | ^ 0x5eaa0e set_min_and_max_values_for_integral_type(tree_node*, int, signop) /home/marxin/Programming/gcc2/gcc/stor-layout.c:2819 0xb1ad14 fixup_signed_type(tree_node*) /home/marxin/Programming/gcc2/gcc/stor-layout.c:2836 0xd6d15e build_nonstandard_integer_type(unsigned long, int) /home/marxin/Programming/gcc2/gcc/tree.c:8020 0xc92c55 vn_reference_lookup_3 /home/marxin/Programming/gcc2/gcc/tree-ssa-sccvn.c:2890 0xbeef32 walk_non_aliased_vuses(ao_ref*, tree_node*, bool, void* (*)(ao_ref*, tree_node*, void*), void* (*)(ao_ref*, tree_node*, void*, translate_flags*), tree_node* (*)(tree_node*), unsigned int&, void*) /home/marxin/Programming/gcc2/gcc/tree-ssa-alias.c:3691 0xc8dc5f vn_reference_lookup(tree_node*, tree_node*, vn_lookup_kind, vn_reference_s**, bool, tree_node**, tree_node*) /home/marxin/Programming/gcc2/gcc/tree-ssa-sccvn.c:3545 0xc9389e visit_reference_op_load /home/marxin/Programming/gcc2/gcc/tree-ssa-sccvn.c:4934 0xc9389e visit_stmt /home/marxin/Programming/gcc2/gcc/tree-ssa-sccvn.c:5374 0xc945a6 process_bb /home/marxin/Programming/gcc2/gcc/tree-ssa-sccvn.c:7047 0xc9644e do_rpo_vn /home/marxin/Programming/gcc2/gcc/tree-ssa-sccvn.c:7566 0xc96d10 execute /home/marxin/Programming/gcc2/gcc/tree-ssa-sccvn.c:7834 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. Fixed on master with r11-198-g1595a1cb7bfac8d5 and started with r10-1823-g8389386c6d55d57a (one needs -fno-finite-loops).