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

Arseny Solokha <asolokha at gmx dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |asolokha at gmx dot com

--- Comment #1 from Arseny Solokha <asolokha at gmx dot com> ---
The latest snapshot ICEs on the following even w/o any options specified:

int re, nm;
unsigned int cg;

void
wq (void)
{
  if ((re != 0) ? (1 ^ nm ^ (cg ^ 1)) : 0)
    {
    }
}

% x86_64-pc-linux-gnu-gcc-7.0.0-alpha20160515 -c zkr8zi5p.c
zkr8zi5p.c: In function 'wq':
zkr8zi5p.c:5:1: error: mismatching comparison operand types
 wq (void)
 ^~
int
unsigned int
if (nm.1_2 != cg.2_3) goto <D.1753>; else goto <D.1754>;
zkr8zi5p.c:5:1: internal compiler error: verify_gimple failed

However, after a trivial modification it starts failing just like in #c0:

--- zkr8zi5p.c.jj       2016-05-20 13:51:07.756561774 +0700
+++ zkr8zi5p.c  2016-05-20 13:51:41.619564326 +0700
@@ -4,7 +4,8 @@
 void
 wq (void)
 {
-  if ((re != 0) ? (1 ^ nm ^ (cg ^ 1)) : 0)
+  int ls = 1 ^ nm ^ (cg ^ 1);
+  if ((re != 0) ? ls : 0)
     {
     }
 }

% x86_64-pc-linux-gnu-gcc-7.0.0-alpha20160515 -c zkr8zi5p.c                     
zkr8zi5p.c: In function 'wq':
zkr8zi5p.c:5:1: error: type mismatch in binary expression
 wq (void)
 ^~
int

int

unsigned int

ls = nm.0_1 ^ cg.1_2;
zkr8zi5p.c:5:1: internal compiler error: verify_gimple failed

…so this is probably the same issue.

Reply via email to