Descriptiongc: fix label recursion bugs
Was keeping a pointer to the labeled statement in n->right,
which meant that generic traversals of the tree visited it twice.
That combined with aggressive flattening of the block
structure when possible during parsing meant that
the kinds of label: code label: code label: code sequences
generated by yacc were giving the recursion 2ⁿ paths
through the program.
Fixes issue 2212.
Patch Set 1 #Patch Set 2 : diff -r 99bb84deb408 https://go.googlecode.com/hg #Patch Set 3 : diff -r 99bb84deb408 https://go.googlecode.com/hg #Patch Set 4 : diff -r de1568e2e23d https://go.googlecode.com/hg #
MessagesTotal messages: 3
|