1
0
mirror of https://github.com/golang/go synced 2024-09-28 21:34:30 -06:00
go/test
LE Manh Cuong 991583017c [release-branch.go1.12] cmd/compile: fix literal struct interface {} lost passing by value
CL 135377 introduces pass strings and slices to convT2{E,I} by value.
Before that CL, all types, except interface will be allocated temporary
address. The CL changes the logic that only constant and type which
needs address (determine by convFuncName) will be allocated.

It fails to cover the case where type is static composite literal.
Adding condition to check that case fixes the issue.

Also, static composite literal node implies constant type, so consttype
checking can be removed.

Fixes #31209

Change-Id: Ifc750a029fb4889c2d06e73e44bf85e6ef4ce881
Reviewed-on: https://go-review.googlesource.com/c/go/+/168858
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
(cherry picked from commit d47db6dc0c)
Reviewed-on: https://go-review.googlesource.com/c/go/+/170437
Run-TryBot: Andrew Bonventre <andybons@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
2019-04-02 19:43:35 +00:00
..
alias3.dir
bench test/bench/garbage: update Benchmarks Game URL to new page 2018-09-24 17:11:42 +00:00
chan test/chan: fix broken link to Squinting at Power Series 2019-02-06 20:54:16 +00:00
closure3.dir cmd/compile: encourage inlining of functions with single-call bodies 2018-11-08 17:29:23 +00:00
codegen cmd/compile: pad zero-sized stack variables 2018-12-22 01:16:00 +00:00
ddd2.dir
dwarf
fixedbugs [release-branch.go1.12] cmd/compile: fix literal struct interface {} lost passing by value 2019-04-02 19:43:35 +00:00
import2.dir
import4.dir
interface
intrinsic.dir
ken
linkname.dir
method4.dir
retjmp.dir
stress
syntax
uintptrescapes.dir
64bit.go
235.go
alg.go
alias1.go
alias2.go
alias3.go
alias.go
align.go
append1.go
append.go
args.go
armimm.go
assign1.go
assign.go
atomicload.go
bigalg.go
bigmap.go
blank1.go
blank.go
bom.go
bombad.go
bounds.go
chancap.go runtime: handle 64bits addresses for AIX 2018-11-26 14:06:28 +00:00
chanlinear.go
char_lit1.go
char_lit.go
checkbce.go [release-branch.go1.12] cmd/compile: fix ordering for short-circuiting ops 2019-03-13 19:54:41 +00:00
clearfat.go
closedchan.go
closure1.go
closure2.go
closure3.go all: fix a bunch of misspellings 2018-10-06 15:40:03 +00:00
closure4.go cmd/compile/internal/gc: add nil check for closure call on wasm 2018-08-14 09:19:38 +00:00
closure.go
cmp6.go
cmp.go
cmplx.go
cmplxdivide1.go
cmplxdivide.c
cmplxdivide.go
complit1.go
complit.go
compos.go
const1.go
const2.go
const3.go
const4.go
const5.go
const6.go
const.go
convert1.go
convert2.go
convert3.go
convert.go
convlit1.go
convlit.go
convT2X.go
copy1.go
copy.go
crlf.go
ddd1.go
ddd2.go
ddd.go
decl.go
declbad.go
defer.go
deferfin.go
deferprint.go
deferprint.out
devirt.go
divide.go
divmod.go
empty.go
env.go
eof1.go
eof.go
escape2.go cmd/compile/internal/gc: unify self-assignment checks in esc.go 2018-09-20 09:46:11 +00:00
escape2n.go cmd/compile/internal/gc: unify self-assignment checks in esc.go 2018-09-20 09:46:11 +00:00
escape3.go
escape4.go
escape5.go cmd/compile: fix unnamed parameter handling in escape analysis 2018-12-04 23:01:00 +00:00
escape_array.go
escape_because.go [release-branch.go1.12] cmd/compile: flow interface data to heap if CONVIFACE of a non-direct interface escapes 2019-02-22 00:10:53 +00:00
escape_calls.go
escape_closure.go
escape_field.go
escape_iface.go
escape_indir.go
escape_level.go
escape_map.go
escape_param.go [release-branch.go1.12] cmd/compile: flow interface data to heap if CONVIFACE of a non-direct interface escapes 2019-02-22 00:10:53 +00:00
escape_slice.go
escape_struct_param1.go
escape_struct_param2.go
escape_struct_return.go
escape.go
fibo.go
finprofiled.go
float_lit2.go
float_lit3.go
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
funcdup2.go
funcdup.go
gc1.go
gc2.go
gc.go
gcgort.go
gcstring.go
goprint.go
goprint.out
goto.go
heapsampling.go
helloworld.go
helloworld.out
if.go
import1.go
import2.go
import4.go
import5.go
import6.go
import.go
index0.go
index1.go
index2.go
index.go
indirect1.go
indirect.go
init1.go
init.go
initcomma.go
initialize.go
initializerr.go
initloop.go
inline_big.go cmd/compile: set stricter inlining threshold in large functions 2018-07-24 16:11:08 +00:00
inline_caller.go runtime: make FuncForPC return the innermost inlined frame 2019-01-08 21:54:04 +00:00
inline_callers.go runtime: make FuncForPC return the innermost inlined frame 2019-01-08 21:54:04 +00:00
inline_literal.go
inline_math_bits_rotate.go cmd/compile: make math/bits.RotateLeft* an intrinsic on amd64 2018-08-30 22:48:28 +00:00
inline_variadic.go
inline.go cmd/compile: encourage inlining of functions with single-call bodies 2018-11-08 17:29:23 +00:00
int_lit.go
intcvt.go
intrinsic_atomic.go
intrinsic.go
iota.go
label1.go
label.go
linkmain_run.go
linkmain.go
linkname.go
linkobj.go
linkx_run.go
linkx.go
literal.go
live1.go
live2.go cmd/compile,runtime: remove ambiguously live logic 2018-10-03 19:54:16 +00:00
live_syscall.go cmd/compile: encourage inlining of functions with single-call bodies 2018-11-08 17:29:23 +00:00
live.go [release-branch.go1.12] cmd/compile: fix ordering for short-circuiting ops 2019-03-13 19:54:41 +00:00
locklinear.go
loopbce.go cmd/compile: check for negative upper bound to IsSliceInBounds 2018-12-07 23:04:58 +00:00
makechan.go
makemap.go
makenew.go
mallocfin.go
map1.go
map.go
mapclear.go
maplinear.go
mergemul.go
method1.go
method2.go
method3.go
method4.go
method5.go
method6.go
method7.go
method.go
named1.go
named.go
nil.go
nilcheck.go
nilptr2.go
nilptr3.go cmd/compile: fix nilcheck for AIX 2018-11-26 14:13:53 +00:00
nilptr4.go
nilptr5_aix.go test: fix nilptr5 for AIX 2018-11-27 15:36:08 +00:00
nilptr5_wasm.go cmd/compile: fix nilcheck for AIX 2018-11-26 14:13:53 +00:00
nilptr5.go cmd/compile: fix nilcheck for AIX 2018-11-26 14:13:53 +00:00
nilptr_aix.go cmd/compile: fix nilcheck for AIX 2018-11-26 14:13:53 +00:00
nilptr.go cmd/compile: fix nilcheck for AIX 2018-11-26 14:13:53 +00:00
nosplit.go all: skip unsupported tests on AIX 2018-11-02 16:12:08 +00:00
notinheap2.go
notinheap3.go cmd/compile: omit write barriers for slice clears of go:notinheap pointers 2018-12-05 21:54:54 +00:00
notinheap.go cmd/compile: disallow converting string to notinheap slice 2018-11-02 19:53:59 +00:00
nowritebarrier.go
nul1.go
opt_branchlikely.go
parentype.go
peano.go
phiopt.go
print.go
print.out
printbig.go
printbig.out
prove.go cmd/compile: fix deriving from x+d >= w on overflow in prove pass 2019-01-02 19:28:06 +00:00
range.go
README.md
recover1.go
recover2.go
recover3.go
recover4.go
recover5.go
recover.go
reflectmethod1.go
reflectmethod2.go
reflectmethod3.go
reflectmethod4.go
rename1.go
rename.go
reorder2.go
reorder.go
retjmp.go
return.go
rotate0.go
rotate1.go
rotate2.go
rotate3.go
rotate.go
run.go cmd/compile: use innermost line number for -S 2018-12-11 20:24:45 +00:00
rune.go
runtime.go
shift1.go
shift2.go
sieve.go
sigchld.go
sigchld.out
simassign.go
sinit_run.go
sinit.go cmd/compile: fix static initializer 2018-12-03 16:48:21 +00:00
sizeof.go
slice3.go
slice3err.go
slicecap.go
sliceopt.go
solitaire.go
stack.go
stackobj2.go test: stress test for stack objects 2018-10-03 19:54:29 +00:00
stackobj3.go cmd/compile,runtime: remove ambiguously live logic 2018-10-03 19:54:16 +00:00
stackobj.go cmd/compile,runtime: remove ambiguously live logic 2018-10-03 19:54:16 +00:00
strcopy.go
strength.go
string_lit.go
stringrange.go
struct0.go
switch2.go
switch3.go
switch4.go
switch5.go Revert "fmt: fix incorrect format of whole-number floats when using %#v" 2018-10-16 21:54:35 +00:00
switch6.go
switch7.go
switch.go
tinyfin.go
torture.go
turing.go
typecheck.go
typecheckloop.go
typeswitch1.go
typeswitch2.go test: fix spelling of caught be the compiler to caught by the compiler 2018-10-04 00:49:49 +00:00
typeswitch3.go test: fix spelling of caught be the compiler to caught by the compiler 2018-10-04 00:49:49 +00:00
typeswitch.go
uintptrescapes2.go cmd/compile: reuse temporaries in order pass 2018-10-14 05:21:00 +00:00
uintptrescapes.go
undef.go
utf.go
varerr.go
varinit.go
writebarrier.go cmd/compile: eliminate write barriers when writing non-heap ptrs 2018-11-29 22:23:02 +00:00
zerodivide.go

The test directory contains tests of the Go tool chain and runtime. It includes black box tests, regression tests, and error output tests. They are run as part of all.bash.

To run just these tests, execute:

../bin/go run run.go

Standard library tests should be written as regular Go tests in the appropriate package.

The tool chain and runtime also have regular Go tests in their packages. The main reasons to add a new test to this directory are:

  • it is most naturally expressed using the test runner; or
  • it is also applicable to gccgo and other Go tool chains.