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.