https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83896

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[8 Regression] ice in       |[8 Regression] ice in
                   |tree_to_shwi, at            |get_string_len on a call to
                   |tree.c:6847                 |strlen with non-constant
                   |                            |length

--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> ---
Reduced/cleaned up test case:

$ cat pr83896.c && gcc -O2 -S pr83896.c
extern char a[5];
extern char b[];

void f (void)
{
  if (__builtin_strlen (b) != 4)
    __builtin_memcpy (a, b, sizeof a);
}
during GIMPLE pass: strlen
pr83896.c: In function ‘f’:
pr83896.c:4:6: internal compiler error: in tree_to_shwi, at tree.c:6806
 void f (void)
      ^
0x13469cc tree_to_shwi(tree_node const*)
        /ssd/src/gcc/git-svn/gcc/tree.c:6806
0x122cefe get_string_len
        /ssd/src/gcc/git-svn/gcc/tree-ssa-strlen.c:2793
0x122d653 handle_char_store
        /ssd/src/gcc/git-svn/gcc/tree-ssa-strlen.c:2970
0x122efde strlen_check_and_optimize_stmt
        /ssd/src/gcc/git-svn/gcc/tree-ssa-strlen.c:3307
0x122f66f strlen_dom_walker::before_dom_children(basic_block_def*)
        /ssd/src/gcc/git-svn/gcc/tree-ssa-strlen.c:3470
0x1aeb6df dom_walker::walk(basic_block_def*)
        /ssd/src/gcc/git-svn/gcc/domwalk.c:308
0x122f900 execute
        /ssd/src/gcc/git-svn/gcc/tree-ssa-strlen.c:3550
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.

Reply via email to