modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/pr30778.c (about)

     1  extern void *memset (void *, int, __SIZE_TYPE__);
     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))
    19  init_reg_last (void)
    20  {
    21    memset (reg_stat, 0, __builtin_offsetof (struct reg_stat, sign_bit_copies));
    22  }
    23  
    24  int 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  }