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

            Bug ID: 71040
           Summary: [7 Regression] ICE: verify_gimple failed (error:
                    invalid operand in unary operation; error: incorrect
                    sharing of tree nodes) w/ -O3
           Product: gcc
           Version: 7.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
  Target Milestone: ---

gcc-7.0.0-alpha20160508 ICEs when compiling the following reduced snippet w/
-O3:

struct
{
  int b8 : 24;
} ud, ce;
int et;

void
fo (void);

void
p4 (int pn)
{
  while (et != 0)
    {
      short int *uc = (short int *)&ud;
      if (pn != 0)
        fo ();
      *uc = ce.b8;
      ++et;
    }
}


% gcc-7.0.0-alpha20160508 -c -O3 apdexura.c
apdexura.c: In function 'p4':
apdexura.c:11:1: error: invalid operand in unary operation
 p4 (int pn)
 ^~
# VUSE <.MEM_8(D)>
ce_b8_lsm0.5_6 = (<unnamed-signed:24>) MEM[(struct  *)&ce];
apdexura.c:11:1: error: invalid operand in unary operation
apdexura.c:11:1: error: incorrect sharing of tree nodes
MEM[(struct  *)&ce]
# VUSE <.MEM_8(D)>
_23 = (short int) MEM[(struct  *)&ce];
apdexura.c:11:1: internal compiler error: verify_gimple failed

Reply via email to