// PR rtl-optimization/16590 // { dg-do run } // { dg-options "-O2" } extern "C" void abort(); struct iterator { char * p; int *dummy; }; static iterator pend(char * start) { iterator p = {start, 0}; if (p.p == start) p.p = start+5; --p.p; return p; } int main() { char mem[4+1]; if(pend(mem).p != mem+4) abort (); }