1 struct barstruct { char const* some_string; } x; 2 extern void abort (void); 3 void __attribute__((noinline)) foo(void)4foo(void) 5 { 6 if (!x.some_string) 7 abort (); 8 } baz(int b)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 } main()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