1
0
mirror of https://github.com/golang/go synced 2024-11-22 14:34:45 -07:00
go/test
Russ Cox 572d984eaa cmd/gc: fix escape analysis
If the analysis reached a node twice, then the analysis was cut off.
However, if the second arrival is at a lower depth (closer to escaping)
then it is important to repeat the traversal.

The repeating must be cut off at some point to avoid the occasional
infinite recursion. This CL cuts it off as soon as possible while still
passing all tests.

Fixes #4751.

R=ken2
CC=golang-dev, lvd
https://golang.org/cl/7303043
2013-02-04 22:48:31 -05:00
..
bench test/bench/shootout: match gcc architecture to GOARCH 2012-10-07 15:49:56 -04:00
bugs cmd/gc: fix wrong interaction between inlining and embedded builtins. 2012-12-22 19:16:31 +01:00
chan test: use testlib in a few more cases (part 2) 2012-04-20 23:45:43 +08:00
ddd2.dir test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
dwarf test: make rundir match compiledir/errorcheckdir. 2013-01-11 22:00:48 +01:00
fixedbugs cmd/gc: fix &^ code generation bug 2013-02-04 00:21:44 -05:00
import2.dir test: convert more tests to rundir/compiledir conventions 2012-10-07 23:22:01 +02:00
import4.dir test: convert more tests to rundir/compiledir conventions 2012-10-07 23:22:01 +02:00
interface test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
ken
method4.dir test: convert more tests to rundir/compiledir conventions 2012-10-07 23:22:01 +02:00
safe test: adapt old-style tests to new flag parsing. 2013-01-11 22:05:46 +01:00
syntax gc: improve error message for composite literals with unexpected newlines 2012-04-02 11:00:55 -04:00
64bit.go cmd/gc: Error out on division by constant zero. 2013-01-30 20:21:08 +01:00
235.go
alias1.go
alias.go
append.go
args.go test: run some more tests by default 2012-11-08 09:04:27 -08:00
assign1.go
assign.go
bigalg.go
bigmap.go runtime: handle and test large map values 2012-05-24 22:41:07 -04:00
blank1.go
blank.go cmd/gc: don't hash nor compare struct padding or blank fields. 2013-01-18 18:26:43 +01:00
bom.go gc: initial BOM is legal. 2012-09-10 13:03:07 -07:00
bombad.go gc: initial BOM is legal. 2012-09-10 13:03:07 -07:00
bounds.go test: prepare for 64-bit ints 2012-09-24 00:06:41 -04:00
chancap.go
char_lit1.go
char_lit.go
closedchan.go
closure.go test: enforce 1 proc in the test 2012-07-01 21:59:50 +04:00
cmp6.go
cmp.go
cmplx.go
cmplxdivide1.go test: use testlib in a few more cases 2012-03-22 02:14:44 +08:00
cmplxdivide.c test: use testlib in a few more cases 2012-03-22 02:14:44 +08:00
cmplxdivide.go test: invoke go command in run.go 2012-03-07 01:54:39 -05:00
complit1.go
complit.go
compos.go
const1.go cmd/gc: reject non-Go constants 2013-02-01 23:10:02 -05:00
const2.go test: match gccgo error messages 2012-09-28 08:30:30 -07:00
const3.go
const4.go cmd/gc: implement len(array) / cap(array) rule 2012-03-07 22:43:28 -05:00
const5.go cmd/gc: reject non-Go constants 2013-02-01 23:10:02 -05:00
const6.go cmd/gc: update ideal bool rules to match latest spec 2013-02-03 01:44:03 -05:00
const.go
convert1.go
convert3.go
convert.go
convlit1.go
convlit.go
convT2X.go cmd/gc: cache itab lookup in convT2I. 2012-07-03 09:09:05 +10:00
copy.go
crlf.go test: use testlib in a few more cases (part 2) 2012-04-20 23:45:43 +08:00
ddd1.go test: match gccgo error messages 2012-09-28 08:30:30 -07:00
ddd2.go test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
ddd.go test: enable method expression tests in ddd.go 2012-03-07 11:17:26 -08:00
decl.go
declbad.go test: correct type in declbad.go 2012-10-07 21:52:57 +02:00
defer.go
deferprint.go
deferprint.out
divide.go
empty.go
env.go
eof1.go
eof.go
errchk
escape2.go cmd/gc: fix escape analysis 2013-02-04 22:48:31 -05:00
escape3.go
escape4.go cmd/gc: fix escape analysis bug 2012-09-24 15:53:12 -04:00
escape5.go cmd/gc: fix escape analysis bug 2012-11-07 15:15:21 -05:00
escape.go cmd/gc: fix escape analysis bug with variable capture in loops. 2012-08-31 22:23:37 +02:00
float_lit.go
floatcmp.go
for.go
func1.go
func2.go
func3.go
func4.go
func5.go
func6.go
func7.go
func8.go
func.go
gc1.go
gc2.go
gc.go
golden.out cmd/gc: do not generate code for var _ = ... unless necessary 2012-12-30 12:01:53 -05:00
goprint.go
goprint.out
goto.go
helloworld.go
helloworld.out
if.go
import1.go
import2.go test: convert more tests to rundir/compiledir conventions 2012-10-07 23:22:01 +02:00
import4.go test: convert more tests to rundir/compiledir conventions 2012-10-07 23:22:01 +02:00
import5.go
import.go
index0.go test: run index test by default 2012-11-07 12:33:54 -08:00
index1.go test: run index test by default 2012-11-07 12:33:54 -08:00
index2.go test: run index test by default 2012-11-07 12:33:54 -08:00
index.go test: change index.go to test size of int, not GOARCH == "amd64" 2012-11-08 15:43:28 -08:00
indirect1.go
indirect.go
init1.go
init.go
initcomma.go
initialize.go
initializerr.go test: add "duplicate" struct map key test 2012-12-17 11:05:58 -05:00
int_lit.go
intcvt.go
iota.go
label1.go
label.go
linkx.go test: expand run.go's errorcheck, make clear which bugs run 2012-09-23 13:16:14 -04:00
literal.go
mallocfin.go
map1.go cmd/gc: fix type checking loop 2012-06-07 03:06:40 -04:00
map.go
method1.go
method2.go
method3.go
method4.go test: convert more tests to rundir/compiledir conventions 2012-10-07 23:22:01 +02:00
method.go cmd/gc: unnamed struct types can have methods 2012-03-07 02:27:15 -05:00
named1.go
named.go
nil.go test: move map delete test to nil.go 2012-12-13 12:11:24 -08:00
nilptr.go
nul1.go test: run some more tests by default 2012-11-08 09:04:27 -08:00
parentype.go
peano.go
printbig.go
printbig.out
range.go cmd/gc: fix parallel assignment in range 2012-05-24 23:05:36 -04:00
recover1.go
recover2.go
recover3.go
recover.go
rename1.go
rename.go
reorder2.go
reorder.go test: add test for order of evaluation of map index on left of = 2012-04-24 10:17:26 -07:00
rotate0.go test: add rotate.go and fixedbugs/bug313 2013-01-11 22:42:55 +01:00
rotate1.go test: add rotate.go and fixedbugs/bug313 2013-01-11 22:42:55 +01:00
rotate2.go test: add rotate.go and fixedbugs/bug313 2013-01-11 22:42:55 +01:00
rotate3.go test: add rotate.go and fixedbugs/bug313 2013-01-11 22:42:55 +01:00
rotate.go test: add rotate.go and fixedbugs/bug313 2013-01-11 22:42:55 +01:00
run test: minor fixes in run and testlib 2012-09-24 00:06:31 -04:00
run.go cmd/gc: reject non-Go constants 2013-02-01 23:10:02 -05:00
rune.go
runtime.go
shift1.go
shift2.go
sieve.go
sigchld.go test: add support for build tags. 2013-01-28 21:29:45 +01:00
sigchld.out
simassign.go
sinit.go cmd/gc: do not generate code for var _ = ... unless necessary 2012-12-30 12:01:53 -05:00
sizeof.go
solitaire.go
stack.go
string_lit.go cmd/gc: string conversion for surrogates 2012-08-30 11:16:55 -07:00
stringrange.go all: make Unicode surrogate halves illegal as UTF-8 2012-08-08 14:01:23 -07:00
struct0.go
switch3.go cmd/gc: accept switches on comparable arrays. 2012-08-03 21:47:26 +02:00
switch.go cmd/gc: add missing conversion from bool to interface in switches. 2012-09-17 21:29:10 +02:00
testlib test: add support for build tags. 2013-01-28 21:29:45 +01:00
torture.go cmd/8g: introduce temporaries in byte multiplication. 2012-12-21 23:46:16 +01:00
turing.go
typecheck.go cmd/gc: don't dereference a nil Type pointer in widstruct 2012-10-07 14:11:59 +08:00
typeswitch1.go
typeswitch2.go
typeswitch3.go test: match gccgo error messages 2012-09-28 08:30:30 -07:00
typeswitch.go
undef.go
utf.go
varerr.go
varinit.go
zerodivide.go