https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88659
Bug ID: 88659 Summary: [9 Regression] ICE in maybe_warn_nonstring_arg at gcc/calls.c:1688 since r267503 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: law at gcc dot gnu.org Target Milestone: --- Following is causing ICE: $ cat /tmp/warn.i const char a[][5] = {"", "", "1234"}; enum { b } c() { int d = __builtin_strnlen(&a[2][d], b); } $ ./xgcc -B. /tmp/warn.i during RTL pass: expand /tmp/warn.i: In function ācā: /tmp/warn.i:2:26: internal compiler error: Segmentation fault 2 | enum { b } c() { int d = __builtin_strnlen(&a[2][d], b); } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x1166940 crash_signal ../../gcc/toplev.c:326 0x7ffff6bc310f ??? /usr/src/debug/glibc-2.27-6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0 0x862461 contains_struct_check(tree_node const*, tree_node_structure_enum, char const*, int, char const*) ../../gcc/tree.h:3545 0x8993ad wi::extended_tree<192>::extended_tree(tree_node const*) ../../gcc/tree.h:5615 0x89816f generic_wide_int<wi::extended_tree<192> >::generic_wide_int<tree_node const*>(tree_node const* const&) ../../gcc/wide-int.h:780 0x897d72 wi::to_widest(tree_node const*) ../../gcc/tree.h:5542 0x897da4 tree_int_cst_lt(tree_node const*, tree_node const*) ../../gcc/tree.h:5795 0xa3a138 maybe_warn_nonstring_arg(tree_node*, tree_node*) ../../gcc/calls.c:1688 0xa3c6ea initialize_argument_information ../../gcc/calls.c:2221 0xa411a7 expand_call(tree_node*, rtx_def*, int) ../../gcc/calls.c:3601 0xa1fd31 expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int) ../../gcc/builtins.c:8337 0xc2f6e6 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:10989 0xc21aee expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:8234 0xc16e22 store_expr(tree_node*, rtx_def*, int, bool, bool) ../../gcc/expr.c:5633 0xc1544c expand_assignment(tree_node*, tree_node*, bool) ../../gcc/expr.c:5416 0xa61513 expand_call_stmt ../../gcc/cfgexpand.c:2720 0xa64ec9 expand_gimple_stmt_1 ../../gcc/cfgexpand.c:3685 0xa65557 expand_gimple_stmt ../../gcc/cfgexpand.c:3844 0xa6dda4 expand_gimple_basic_block ../../gcc/cfgexpand.c:5880 0xa6f8aa execute ../../gcc/cfgexpand.c:6502