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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2019-06-24
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
   Target Milestone|---                         |9.2
            Summary|[9 Regression] ICE in       |[9/10 Regression] ICE in
                   |fold_convert_loc, at        |fold_convert_loc, at
                   |fold-const.c:2429           |fold-const.c:2429
     Ever confirmed|0                           |1

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

#3  0x00000000011a188f in vect_get_vec_def_for_operand (
    op=<string_cst 0x7ffff6a45210>, stmt_vinfo=0x269f460, vectype=<tree 0x0>)
    at /space/rguenther/src/svn/gcc-9-branch/gcc/tree-vect-stmts.c:1608
1608          return vect_init_vector (stmt_vinfo, op, vector_type, NULL);
(gdb) p op
$1 = <string_cst 0x7ffff6a45210>
(gdb) p debug_gimple_stmt (stmt_vinfo->stmt)
# .MEM_23 = VDEF <.MEM_12>
MEM[(char * {ref-all})p_11] = "\x06";

and

1483              else if (CONSTANT_CLASS_P (val))
1484                val = fold_convert (TREE_TYPE (type), val);

which is too simplistic for STRING_CSTs.  I think we want to use
VIEW_CONVERT_EXPRs here.  Testing patch.

Reply via email to