summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/20100316-1.c
blob: 8367d7273d2fe6b65683937671ac2d4f2c20e2da (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
struct Foo {
  int i;
  unsigned precision : 10;
  unsigned blah : 3;
} f;

int __attribute__((noinline,noclone))
foo (struct Foo *p)
{
  struct Foo *q = p;
  return (*q).precision;
}

extern void abort (void);

int main()
{
  f.i = -1;
  f.precision = 0;
  f.blah = -1;
  if (foo (&f) != 0)
    abort ();
  return 0;
}