1 /* Test for ICE in predictive commoning with empty loop header block 2 on arm-none-linux-*. */ 3 4 #pragma GCC diagnostic ignored "-Wreturn-type" 5 6 struct Foo 7 { 8 double *ptr; 9 FooFoo10 Foo (double *ptr_) 11 : ptr (ptr_) 12 { 13 } 14 PostIncFoo15 Foo PostInc () 16 { 17 return Foo (ptr++); 18 } 19 }; 20 Baz(Foo first,double * last)21bool Baz (Foo first, double *last) 22 { 23 Foo prev (first.ptr); 24 25 first.ptr++; 26 27 while (first.ptr != last) 28 if (*first.PostInc ().ptr < *prev.PostInc ().ptr) 29 return false; 30 } 31 32