1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -g" } */
       3  
       4  struct __gcov_var {
       5     unsigned int offset;
       6     unsigned int buffer[(1 << 10) + 1];
       7  } __gcov_var;
       8  unsigned int * gcov_write_words (unsigned int words) {
       9     unsigned int *result;
      10     result = &__gcov_var.buffer[__gcov_var.offset];
      11     return result;
      12  }
      13  
      14  struct gcov_ctr_summary { };
      15  struct gcov_summary {
      16     unsigned int checksum;
      17     struct gcov_ctr_summary ctrs[1];
      18  };
      19  void __gcov_write_unsigned (unsigned int);
      20  void __gcov_write_summary (unsigned int tag,
      21  			   const struct gcov_summary *summary)
      22  {
      23     unsigned ix;
      24     const struct gcov_ctr_summary *csum;
      25     __gcov_write_unsigned (summary->checksum);
      26     for (csum = summary->ctrs, ix = 1; ix--; csum++) { }
      27  }