/* PR rtl-optimization/28636 */ /* Origin: Andreas Schwab */ extern void abort(void); struct input_ty { unsigned char *buffer_position; unsigned char *buffer_end; }; int input_getc_complicated (struct input_ty *x) { return 0; } int check_header (struct input_ty *deeper) { unsigned len; for (len = 0; len < 6; len++) if (((deeper)->buffer_position < (deeper)->buffer_end ? *((deeper)->buffer_position)++ : input_getc_complicated((deeper))) < 0) return 0; return 1; } struct input_ty s; unsigned char b[6]; int main (void) { s.buffer_position = b; s.buffer_end = b + sizeof b; if (!check_header(&s)) abort(); if (s.buffer_position != s.buffer_end) abort(); return 0; }