1struct barstruct { char const* some_string; } x;
2extern void abort (void);
3void __attribute__((noinline))
4foo(void)
5{
6  if (!x.some_string)
7    abort ();
8}
9void baz(int b)
10{
11  struct barstruct bar;
12  struct barstruct* barptr;
13  if (b)
14    barptr = &bar;
15  else
16    {
17      barptr = &x + 1;
18      barptr = barptr - 1;
19    }
20  barptr->some_string = "Everything OK";
21  foo();
22  barptr->some_string = "Everything OK";
23}
24int main()
25{
26  x.some_string = (void *)0;
27  baz(0);
28  if (!x.some_string)
29    abort ();
30  return 0;
31}
32
33