https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105597
--- Comment #3 from David Binderman <dcb314 at hotmail dot com> --- Reduced C code seems to be: typedef struct { int allocated; } vvec; int vvneeds_want, mgpssort; void vvinit(vvec *v, int minelems) { v->allocated = -minelems; } void vvneeds(vvec *v, int needed) { if (needed > v->allocated) if (v->allocated < 0) ; else { int next = v->allocated + (v->allocated >> 1); vvneeds_want = next; } } void mgpssort_1() { vvinit(&mgpssort, mgpssort_1); vvneeds(&mgpssort, mgpssort_1); }