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.