1
0
mirror of https://github.com/golang/go synced 2024-11-13 18:10:24 -07:00
go/test
Russ Cox ee9bfb023a gc: fix order of evaluation
Pulling function calls out to happen before the
expression being evaluated was causing illegal
reorderings even without inlining; with inlining
it got worse.  This CL adds a separate ordering pass
to move things with a fixed order out of expressions
and into the statement sequence, where they will
not be reordered by walk.

Replaces lvd's CL 5534079.

Fixes #2740.

R=lvd
CC=golang-dev
https://golang.org/cl/5569062
2012-01-25 17:53:50 -05:00
..
bench runtime: make garbage collector faster by deleting code 2012-01-10 19:49:11 -08:00
bugs gc: undo most of 'fix infinite recursion for embedded interfaces' 2012-01-20 17:14:09 -05:00
chan test: Add the usual Copyright notice. 2012-01-24 14:48:15 -05:00
dwarf test: clear execute bit from source file 2011-11-03 10:26:33 +09:00
fixedbugs gc: fix order of evaluation 2012-01-25 17:53:50 -05:00
interface gc: test case for recursive interface bug. 2012-01-21 17:02:54 +11:00
ken test: split golden.out into expected output per test 2012-01-18 16:12:24 -08:00
syntax gc: clean up if grammar 2011-09-12 15:52:29 -04:00
64bit.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
235.go
alias1.go test/alias.go: additional tests 2011-10-26 15:27:47 -07:00
alias.go utf8.String: move to exp/utf8string.String 2012-01-17 14:21:50 -08:00
append.go runtime: append([]byte, string...) 2011-10-12 15:59:23 +02:00
args.go
assign1.go test: Match gccgo error messages. 2010-09-10 19:12:10 -07:00
assign.go allow copy of struct containing unexported fields 2011-11-15 12:20:59 -05:00
bigalg.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
bigmap.go
blank1.go test: explicitly use variables to avoid gccgo "not used" error 2012-01-22 11:50:45 -08:00
blank.go gc: fix another blank bug 2011-12-09 11:59:21 -05:00
chancap.go
char_lit1.go test: Match gccgo error messages. 2010-08-31 11:43:52 -07:00
char_lit.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
closedchan.go test: make closedchan.go exit with failure if something fails 2011-11-04 14:12:35 -07:00
closure.go gc: test that asserts closures are not wrapped when they don't have closure vars. 2012-01-10 21:47:22 +01:00
cmp6.go gc: implement == on structs and arrays 2011-12-12 22:22:09 -05:00
cmp.go gc: inlining, allow empty bodies, fix _ arguments. 2011-12-15 17:50:59 +01:00
cmplx.go delete float, complex - code changes 2011-01-19 23:09:00 -05:00
cmplxdivide1.go delete float, complex - code changes 2011-01-19 23:09:00 -05:00
cmplxdivide.c delete float, complex - code changes 2011-01-19 23:09:00 -05:00
cmplxdivide.go renaming_4: gofix -r everything/but/src/pkg 2011-11-08 15:43:02 -08:00
complit1.go gc: remove type elision in struct literals 2011-12-05 14:22:41 -05:00
complit.go gc: remove type elision in struct literals 2011-12-05 14:22:41 -05:00
compos.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
const1.go delete float, complex - code changes 2011-01-19 23:09:00 -05:00
const2.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
const3.go gc: another shift bug 2010-12-13 13:42:51 -05:00
const.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
convert1.go allow direct conversion between string and named []byte, []rune 2011-11-22 12:30:02 -05:00
convert3.go test: don't assign address of array to slice. 2010-08-31 07:34:01 -07:00
convert.go fix tree for reflect rename 2011-04-25 13:39:36 -04:00
convlit1.go
convlit.go allow direct conversion between string and named []byte, []rune 2011-11-22 12:30:02 -05:00
copy.go test copy([]byte, string) 2010-10-26 08:36:23 -07:00
crlf.go gc: implement and test \r in raw strings 2011-12-15 10:47:09 -05:00
ddd1.go gc: use inferred type rather than original one when reporting non-assignability. 2011-12-14 17:34:35 +01:00
ddd2.go
ddd3.go
ddd.go gc: ... bug 2010-10-06 11:12:30 -04:00
decl.go delete float, complex - code changes 2011-01-19 23:09:00 -05:00
declbad.go errchk: allow multiple patterns 2011-08-16 11:14:26 -04:00
defer.go ... changes 2010-09-24 11:55:48 -04:00
deferprint.go test: split golden.out into expected output per test 2012-01-18 16:12:24 -08:00
deferprint.out test: split golden.out into expected output per test 2012-01-18 16:12:24 -08:00
divide.go 6g, 8g: divide corner case 2011-07-28 14:18:22 -04:00
empty.go
env.go non-pkg: gofix -r error -force=error 2011-11-01 22:06:05 -04:00
eof1.go gc: line comments may end in EOF 2010-11-04 16:04:04 -04:00
eof.go gc: insert semicolon at EOF if needed 2010-09-28 10:35:02 -04:00
errchk errchk: allow multiple patterns 2011-08-16 11:14:26 -04:00
escape2.go gc: avoid false positives when using scalar struct fields. 2012-01-12 12:08:40 +01:00
escape3.go gc: zero stack-allocated slice backing arrays 2011-09-02 15:11:28 -04:00
escape.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
float_lit.go arm: enable all tests 2010-10-25 21:25:13 -07:00
floatcmp.go
for.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
func1.go delete float, complex - code changes 2011-01-19 23:09:00 -05:00
func2.go non-pkg: gofix -r error -force=error 2011-11-01 22:06:05 -04:00
func3.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
func4.go test: explicitly use variables to avoid gccgo "not used" error 2012-01-22 11:50:45 -08:00
func5.go
func6.go gc: fix func syntax error 2011-04-13 22:48:21 -04:00
func7.go gc: fix order of operations for f() < g(). 2011-04-26 00:57:03 -04:00
func8.go gc: fix order of evaluation 2012-01-25 17:53:50 -05:00
func.go delete float, complex - code changes 2011-01-19 23:09:00 -05:00
gc1.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
gc2.go runtime: add UpdateMemStats, use in tests 2011-07-22 00:55:01 -04:00
gc.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
golden.out gc: undo most of 'fix infinite recursion for embedded interfaces' 2012-01-20 17:14:09 -05:00
goprint.go test: split golden.out into expected output per test 2012-01-18 16:12:24 -08:00
goprint.out test: split golden.out into expected output per test 2012-01-18 16:12:24 -08:00
goto.go test: match gccgo error messages for goto.go and bug344.go 2011-09-20 14:45:54 -07:00
hashmap.go build: clear execute bit from Go files 2011-09-05 07:48:42 -04:00
helloworld.go test: split golden.out into expected output per test 2012-01-18 16:12:24 -08:00
helloworld.out test: split golden.out into expected output per test 2012-01-18 16:12:24 -08:00
if.go go: require { } around else block 2011-07-14 17:15:52 -04:00
import1.go errchk: allow multiple patterns 2011-08-16 11:14:26 -04:00
import2.go
import3.go
import4.go
import.go test: error-related fixes 2011-10-27 19:41:39 -07:00
index.go test: fix NaCl build 2010-09-19 23:28:32 -04:00
indirect1.go test: explicitly use variables to avoid gccgo "not used" error 2012-01-22 11:50:45 -08:00
indirect.go
init1.go runtime: run goroutines during init 2011-10-13 15:54:23 -04:00
init.go test: match gccgo error messages for init.go 2011-03-26 11:24:02 -07:00
initcomma.go
initialize.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
initializerr.go errchk: allow multiple patterns 2011-08-16 11:14:26 -04:00
initsyscall.go use new time API 2011-11-30 12:01:46 -05:00
int_lit.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
intcvt.go
iota.go delete float, complex - code changes 2011-01-19 23:09:00 -05:00
label1.go test: match gccgo error messages for label.go and label1.go. 2011-03-25 10:36:46 -07:00
label.go test: match gccgo error messages for label.go and label1.go. 2011-03-25 10:36:46 -07:00
literal.go delete float, complex - code changes 2011-01-19 23:09:00 -05:00
malloc1.go runtime: add UpdateMemStats, use in tests 2011-07-22 00:55:01 -04:00
mallocfin.go runtime: faster finalizers 2011-10-06 18:42:51 +03:00
mallocrand.go renaming_4: gofix -r everything/but/src/pkg 2011-11-08 15:43:02 -08:00
mallocrep1.go runtime: add UpdateMemStats, use in tests 2011-07-22 00:55:01 -04:00
mallocrep.go runtime: faster finalizers 2011-10-06 18:42:51 +03:00
map1.go gc: implement == on structs and arrays 2011-12-12 22:22:09 -05:00
map.go delete float, complex - code changes 2011-01-19 23:09:00 -05:00
method1.go test: s/float/float64/ 2011-01-21 08:37:58 -08:00
method2.go test: match gccgo error messages 2011-09-21 17:25:48 -07:00
method3.go
method.go gc, spec, tests: no auto-indirect of pointer to interface value 2010-09-30 14:59:41 -04:00
named1.go gc: use inferred type rather than original one when reporting non-assignability. 2011-12-14 17:34:35 +01:00
named.go delete float, complex - code changes 2011-01-19 23:09:00 -05:00
nil.go gofix -r mapdelete 2011-10-18 09:56:34 -04:00
nilptr.go test: make array smaller in nilptr test 2011-12-07 15:00:44 -05:00
nul1.go errchk: allow multiple patterns 2011-08-16 11:14:26 -04:00
parentype.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
peano.go test: change several tests to not print 2012-01-18 14:31:31 -08:00
printbig.go test: split golden.out into expected output per test 2012-01-18 16:12:24 -08:00
printbig.out test: split golden.out into expected output per test 2012-01-18 16:12:24 -08:00
range.go cgo, goyacc, go/build, html, http, path, path/filepath, testing/quick, test: use rune 2011-10-25 22:20:02 -07:00
recover1.go
recover2.go gc: implement == on structs and arrays 2011-12-12 22:22:09 -05:00
recover3.go non-pkg: gofix -r error -force=error 2011-11-01 22:06:05 -04:00
recover.go
rename1.go errchk: allow multiple patterns 2011-08-16 11:14:26 -04:00
rename.go
reorder2.go gc: fix order of evaluation 2012-01-25 17:53:50 -05:00
reorder.go gc: stricter multiple assignment + test 2011-10-13 15:46:39 -04:00
run build: pass $GCFLAGS to compiler 2011-10-18 14:55:10 -04:00
rune.go gc: rune is now an alias for int32 2011-12-09 00:12:07 -05:00
runtime.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
shift1.go test: match gccgo error messages 2011-09-21 17:25:48 -07:00
shift2.go gc: implement new shift rules 2011-05-31 15:05:40 -04:00
sieve.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
sigchld.go test: split golden.out into expected output per test 2012-01-18 16:12:24 -08:00
sigchld.out test: split golden.out into expected output per test 2012-01-18 16:12:24 -08:00
simassign.go
sinit.go gc: make static initialization more static 2011-08-31 07:37:14 -04:00
sizeof.go gc: unsafe.Alignof, unsafe.Offsetof, unsafe.Sizeof now return uintptr 2011-06-17 16:12:14 -04:00
solitaire.go cgo, goyacc, go/build, html, http, path, path/filepath, testing/quick, test: use rune 2011-10-25 22:20:02 -07:00
stack.go 5l, 8l: pass stack frame size to morestack when needed 2011-02-01 18:34:41 -05:00
string_lit.go cgo, goyacc, go/build, html, http, path, path/filepath, testing/quick, test: use rune 2011-10-25 22:20:02 -07:00
stringrange.go renaming_4: gofix -r everything/but/src/pkg 2011-11-08 15:43:02 -08:00
struct0.go gc: fix zero-length struct eval 2011-09-05 15:31:22 -04:00
switch1.go test: remove semiocolons. 2010-09-04 10:36:13 +10:00
switch3.go gc: remove func, map compare 2011-11-13 22:58:08 -05:00
switch.go gc: remove func, map compare 2011-11-13 22:58:08 -05:00
test0.go delete float, complex - code changes 2011-01-19 23:09:00 -05:00
turing.go test: change several tests to not print 2012-01-18 14:31:31 -08:00
typeswitch1.go
typeswitch2.go type switches: test for pathological case 2011-08-19 09:31:50 -07:00
typeswitch3.go gc: static implements check on typeswitches only applies to concrete case types. 2012-01-24 13:53:00 +01:00
typeswitch.go gc: remove func, map compare 2011-11-13 22:58:08 -05:00
undef.go test: Match gccgo error messages. 2010-09-10 12:44:37 -07:00
utf.go renaming_4: gofix -r everything/but/src/pkg 2011-11-08 15:43:02 -08:00
varerr.go test: Match gccgo error messages. 2010-09-10 12:45:46 -07:00
varinit.go
zerodivide.go non-pkg: gofix -r error -force=error 2011-11-01 22:06:05 -04:00