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

Reply via email to