summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/struct-aliasing-1.c
blob: 9786b44c2454a19e587e84f5b4baaf919e13364e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct S { float f; };
int __attribute__((noinline))
foo (int *r, struct S *p)
{
  int *q = (int *)&p->f;
  int i = *q;
  *r = 0;
  return i + *q;
}
extern void abort (void);
int main()
{
  int i = 1;
  if (foo (&i, (struct S *)&i) != 1)
    abort ();
  return (0);
}