mirror of
https://github.com/golang/go
synced 2024-11-24 13:20:15 -07:00
60d47101aa
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 #2212. R=lvd CC=golang-dev https://golang.org/cl/4960050 |
||
---|---|---|
.. | ||
bench | ||
bugs | ||
chan | ||
fixedbugs | ||
garbage | ||
interface | ||
ken | ||
nilptr | ||
syntax | ||
64bit.go | ||
235.go | ||
append.go | ||
args.go | ||
assign1.go | ||
assign.go | ||
bigalg.go | ||
bigmap.go | ||
blank1.go | ||
blank.go | ||
chancap.go | ||
char_lit1.go | ||
char_lit.go | ||
closedchan.go | ||
closure.go | ||
cmp1.go | ||
cmp2.go | ||
cmp3.go | ||
cmp4.go | ||
cmp5.go | ||
cmp6.go | ||
cmplx.go | ||
cmplxdivide1.go | ||
cmplxdivide.c | ||
cmplxdivide.go | ||
complit.go | ||
compos.go | ||
const1.go | ||
const2.go | ||
const3.go | ||
const.go | ||
convert3.go | ||
convert.go | ||
convlit1.go | ||
convlit.go | ||
copy.go | ||
ddd1.go | ||
ddd2.go | ||
ddd3.go | ||
ddd.go | ||
decl.go | ||
declbad.go | ||
defer.go | ||
deferprint.go | ||
divide.go | ||
empty.go | ||
env.go | ||
eof1.go | ||
eof.go | ||
errchk | ||
escape2.go | ||
escape.go | ||
float_lit.go | ||
floatcmp.go | ||
for.go | ||
func1.go | ||
func2.go | ||
func3.go | ||
func4.go | ||
func5.go | ||
func6.go | ||
func7.go | ||
func.go | ||
gc1.go | ||
gc2.go | ||
gc.go | ||
golden.out | ||
goprint.go | ||
goto.go | ||
hashmap.go | ||
helloworld.go | ||
if.go | ||
import1.go | ||
import2.go | ||
import3.go | ||
import4.go | ||
import.go | ||
index.go | ||
indirect1.go | ||
indirect.go | ||
init.go | ||
initcomma.go | ||
initialize.go | ||
initializerr.go | ||
initsyscall.go | ||
int_lit.go | ||
intcvt.go | ||
iota.go | ||
label1.go | ||
label.go | ||
literal.go | ||
malloc1.go | ||
mallocfin.go | ||
mallocrand.go | ||
mallocrep1.go | ||
mallocrep.go | ||
map.go | ||
method1.go | ||
method2.go | ||
method3.go | ||
method.go | ||
named1.go | ||
named.go | ||
nil.go | ||
nul1.go | ||
parentype.go | ||
peano.go | ||
printbig.go | ||
range.go | ||
recover1.go | ||
recover2.go | ||
recover3.go | ||
recover.go | ||
rename1.go | ||
rename.go | ||
run | ||
runtime.go | ||
shift1.go | ||
shift2.go | ||
sieve.go | ||
sigchld.go | ||
simassign.go | ||
sinit.go | ||
sizeof.go | ||
solitaire.go | ||
stack.go | ||
string_lit.go | ||
stringrange.go | ||
switch1.go | ||
switch.go | ||
test0.go | ||
turing.go | ||
typeswitch1.go | ||
typeswitch2.go | ||
typeswitch.go | ||
undef.go | ||
utf.go | ||
varerr.go | ||
varinit.go | ||
vectors.go | ||
zerodivide.go |