summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr39226.c
blob: 3d336360ae5eb28c1a8a0edd13f5335c0ade974b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* 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;
}