OSDN Git Service

PR tree-optimization/15262
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / 941014-2.c
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 typedef struct {
5   unsigned short a;
6   unsigned short b;
7 } foo_t;
8
9 void a1 (unsigned long offset) {}
10
11 volatile foo_t *
12 f ()
13 {
14   volatile foo_t *foo_p = (volatile foo_t *)malloc (sizeof (foo_t));
15
16   a1((unsigned long)foo_p-30);
17   if (foo_p->a & 0xf000)
18     printf("%d\n", foo_p->a);
19   foo_p->b = 0x0100;
20   a1 ((unsigned long)foo_p + 2);
21   a1 ((unsigned long)foo_p - 30);
22   return foo_p;
23 }
24
25 main ()
26 {
27   volatile foo_t *foo_p;
28
29   foo_p = f ();
30   if (foo_p->b != 0x0100)
31     abort ();
32   exit (0);
33 }