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).

Reply via email to