On Thu, 16 Jun 2016, Jan Hubicka wrote: > > On Thu, 9 Jun 2016, Alexander Monakov wrote: > + FOR_EACH_VARIABLE (pv) [snip] > + i = pv->order; > + gcc_assert (nodes[i].kind == ORDER_UNDEFINED); > + nodes[i].kind = pv->definition ? ORDER_VAR : ORDER_VAR_UNDEF; > + nodes[i].u.v = pv; > > order for undefined variables is not computed, so it will be 0. Doesn't > think overwrite existing entries of nodes array?
Hm, I've tried the following testcase: extern int a, b; int f() { return a+b; } and in the above loop I see pv->order == 2 on the first iteration, pv->order == 1 on the second. Under what circumstances wouldn't order be computed? Thanks. Alexander