/* PR target/39226 */ /* { dg-do compile } */ /* { dg-options "-O2" } */ /* { dg-options "-O2 -mtune=cell -mminimal-toc" { target { powerpc*-*-* && lp64 } } } */ #if (__SIZEOF_INT__ == 2) struct A { char *a; unsigned int b : 1; unsigned int c : 15; }; #else struct A { char *a; unsigned int b : 1; unsigned int c : 31; }; #endif struct B { struct A *d; }; void foo (struct B *x, unsigned long y) { if (x->d[y].c) return; if (x->d[y].b) x->d[y].a = 0; }