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

     1  /* PR rtl-optimization/28636 */
     2  /* Origin: Andreas Schwab <schwab@suse.de> */
     3  
     4  extern void abort(void);
     5  
     6  struct input_ty
     7  {
     8    unsigned char *buffer_position;
     9    unsigned char *buffer_end;
    10  };
    11  
    12  int input_getc_complicated (struct input_ty *x) { return 0; }
    13  
    14  int check_header (struct input_ty *deeper)
    15  {
    16    unsigned len;
    17    for (len = 0; len < 6; len++)
    18      if (((deeper)->buffer_position < (deeper)->buffer_end
    19           ? *((deeper)->buffer_position)++
    20           : input_getc_complicated((deeper))) < 0)
    21        return 0;
    22    return 1;
    23  }
    24  
    25  struct input_ty s;
    26  unsigned char b[6];
    27  
    28  int main (void)
    29  {
    30    s.buffer_position = b;
    31    s.buffer_end = b + sizeof b;
    32    if (!check_header(&s))
    33      abort();
    34    if (s.buffer_position != s.buffer_end)
    35      abort();
    36    return 0;
    37  }