https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68062
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-10-23 CC| |ienkovich at gcc dot gnu.org Version|unknown |5.2.0 Ever confirmed|0 |1 Known to fail| |4.9.2, 5.2.0, 6.0 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Looks like a C FE issue. The C++ FE also spits out bogus(?) t.c: In function 'void ret(char)': t.c:8:19: warning: narrowing conversion of 'a' from 'char' to 'unsigned char' inside { } [-Wnarrowing] uv4qi d={a,a,a,a}; ^ t.c:8:19: warning: narrowing conversion of 'a' from 'char' to 'unsigned char' inside { } [-Wnarrowing] t.c:8:19: warning: narrowing conversion of 'a' from 'char' to 'unsigned char' inside { } [-Wnarrowing] t.c:8:19: warning: narrowing conversion of 'a' from 'char' to 'unsigned char' inside { } [-Wnarrowing] t.c:5:6: error: mismatching comparison operand types void ret(char a) ^ v4qi uv4qi D.2265 = c != d; t.c:5:6: internal compiler error: verify_gimple failed Note that GCC 4.8 rejects the comparison with t.c: In function ‘ret’: t.c:9:9: error: comparing vectors with different element types v = (c!=d); ^ With -funsigned-char the ICE is different: > /abuild/rguenther/trunk-g/gcc/cc1plus -quiet t.c -funsigned-char t.c: In function 'void ret(char)': t.c:5:6: internal compiler error: in optab_handler, at optabs-query.h:32 void ret(char a) ^ 0xae59c7 optab_handler(optab_tag, machine_mode) /space/rguenther/src/svn/trunk/gcc/optabs-query.h:32 0x12a4f3e expand_vector_operations_1 I suppose that is Iljas fault (only happens on trunk).