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

            Bug ID: 69946
           Summary: [6 Regression] Invalid ppc64 assembly emitted starting
                    with r226005
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org
  Target Milestone: ---

At -O2 following testcase does not assemble on both powerpc64-linux and
powerpc64le-linux, starting with r226005.  The error is:
vl_idct.s: Assembler messages:
vl_idct.s:27: Error: operand out of range (44 is not between 0 and 31)

struct A
{
  int a : 4;
  int : 2;
  int b : 2;
  int : 2;
  int c : 2;
  int d : 1;
  int e;
};
struct B
{
  int a : 4;
} *a;
void bar (struct A);

void
foo (void)
{
  struct B b = a[0];
  struct A c;
  c.a = b.a;
  c.b = 1;
  c.c = 1;
  c.d = 0;
  bar (c);
}

Reply via email to