1extern void *memset (void *, int, unsigned long); 2extern void abort (void); 3 4struct reg_stat { 5 void *last_death; 6 void *last_set; 7 void *last_set_value; 8 int last_set_label; 9 char last_set_sign_bit_copies; 10 int last_set_mode : 8; 11 char last_set_invalid; 12 char sign_bit_copies; 13 long nonzero_bits; 14}; 15 16static struct reg_stat *reg_stat; 17 18void __attribute__((noinline)) 19init_reg_last (void) 20{ 21 memset (reg_stat, 0, __builtin_offsetof (struct reg_stat, sign_bit_copies)); 22} 23 24int main (void) 25{ 26 struct reg_stat r; 27 28 reg_stat = &r; 29 r.nonzero_bits = -1; 30 init_reg_last (); 31 if (r.nonzero_bits != -1) 32 abort (); 33 return 0; 34} 35