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

            Bug ID: 69353
           Summary: [6 Regression] [graphite] ICE: verify_gimple failed
                    (error: non-trivial conversion at assignment) w/ -O2
                    (-O3) -floop-nest-optimize
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
                CC: spop at gcc dot gnu.org
  Target Milestone: ---

1. gcc-6.0.0-alpha20160117 ICEs when compiling the following reduced snippet w/
-O2 (-O3) -floop-nest-optimize:

int eh, el, oz, pc;
unsigned int ta;

void
tb(void)
{
  ta = (pc != 0);
  if (ta != 0)
    while (pc < 0) {
      int ku = (eh != 0);

      for (el = 0; el < 2; ++el)
        oz = el;
      if (ku != (el ^ 1))
        eh = ta;
      ++pc;
    }
}

% x86_64-pc-linux-gnu-gcc-6.0.0-alpha20160117 -c -O2 -floop-nest-optimize
uqaj0uxw.c
uqaj0uxw.c: In function 'tb':
uqaj0uxw.c:5:1: error: incompatible types in PHI argument 1
 tb(void)
 ^~

_Bool

int

eh_lsm.13_3 = PHI <0(4), eh_lsm.12_30(12)>
uqaj0uxw.c:5:1: error: incompatible types in PHI argument 0
_Bool

int

eh_lsm.13_52 = PHI <eh_lsm.12_30(14)>
uqaj0uxw.c:5:1: error: non-trivial conversion at assignment
int
_Bool
# .MEM_50 = VDEF <.MEM_49>
eh = eh_lsm.13_52;
uqaj0uxw.c:5:1: internal compiler error: verify_gimple failed

2. Replacing an expression "oz = el;" w/ "pc = el;" demonstrates another error
during GIMPLE verification:

n5rzdu1s.c: In function 'tb':
n5rzdu1s.c:5:1: error: mismatching comparison operand types
 tb(void)
 ^~

int
_Bool
if (eh_lsm.12_11 != 0)
n5rzdu1s.c:5:1: internal compiler error: verify_gimple failed

Reply via email to