1  struct fd
       2  {
       3  	unsigned char a;
       4  	unsigned char b;
       5  } f = { 5 };
       6  
       7  struct fd *g() { return &f; }
       8  int h() { return -1; }
       9  
      10  int main()
      11  {
      12  	struct fd *f = g();
      13  	f->b = h();
      14  	if (((f->a & 0x7f) & ~0x10) <= 2)
      15  		abort ();
      16  	exit (0);
      17  }