/* { dg-options "-O2" } */ typedef struct foo { struct foo **Node; } foo; static int sort_and_split (foo **Root, foo **Finite, long first) { foo *cd; long i; for (i = 0; i < first; i++) cd->Node[i] = Finite[first+i]; sort_and_split(Root, Finite, first); return (0); } void Build_foo(foo **Root, foo **Finite, foo **Infinite) { long low, high; while (sort_and_split(Root, Finite, low) == 0); }