1 extern void *memset (void *, int, unsigned long); 2 extern void abort (void); 3 4 struct 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 16 static struct reg_stat *reg_stat; 17 18 void __attribute__((noinline)) init_reg_last(void)19init_reg_last (void) 20 { 21 memset (reg_stat, 0, __builtin_offsetof (struct reg_stat, sign_bit_copies)); 22 } 23 main(void)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