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);
}