tools/ssa
Alan Donovan 5cbf2abd36 go.tools/ssa: ensure address-deriving operations panic on nil inputs.
&x.f, &x[0], x[i:j], &*x all must panic if x==nil.

The first three are already addressed by the semantics of
FieldAddr, IndexAddr, Slice; updated docs to reflect this.
The final case requires generation of an additional dynamic check.

See golang.org/s/go12nil for details.

Tested on $GOROOT/test/nilptr2.go (with patch from CL 13108043)

Also: remove a TODO where a no-op will do.

R=gri, crawshaw
CC=golang-dev, rsc
https://golang.org/cl/13064044
2013-08-19 17:51:33 -04:00
..
interp go.tools/ssa: ensure address-deriving operations panic on nil inputs. 2013-08-19 17:51:33 -04:00
testdata go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
blockopt.go go.tools/ssa: combine CallCommon.{Recv,Func} as Value. 2013-07-26 14:06:26 -04:00
builder.go go.tools/ssa: ensure address-deriving operations panic on nil inputs. 2013-08-19 17:51:33 -04:00
builder_test.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
const.go go.tools/ssa: s/Literal/Const/g, s/Constant/NamedConst/g 2013-07-16 13:50:08 -04:00
create.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
doc.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
dom.go go.tools/ssa: un-export Function.FullName. Use String. 2013-06-26 12:38:08 -04:00
emit.go go.tools/ssa: cosmetic changes to ssa.Alloc. 2013-08-01 14:06:10 -04:00
example_test.go go.tools/ssa: cosmetic changes to ssa.Alloc. 2013-08-01 14:06:10 -04:00
func.go go.tools/ssa: fixes, cleanups, cosmetic tweaks. 2013-08-19 15:38:30 -04:00
lift.go go.tools/ssa: s/Literal/Const/g, s/Constant/NamedConst/g 2013-07-16 13:50:08 -04:00
lvalue.go go.tools/ssa: fixes, cleanups, cosmetic tweaks. 2013-08-19 15:38:30 -04:00
print.go go.tools/ssa: fixes, cleanups, cosmetic tweaks. 2013-08-19 15:38:30 -04:00
promote.go go.tools/ssa: fixes, cleanups, cosmetic tweaks. 2013-08-19 15:38:30 -04:00
sanity.go go.tools/ssa: fixes, cleanups, cosmetic tweaks. 2013-08-19 15:38:30 -04:00
source.go go.tools/go/types: *interface types have no methods 2013-08-14 11:02:10 -07:00
source_test.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
ssa.go go.tools/ssa: fixes, cleanups, cosmetic tweaks. 2013-08-19 15:38:30 -04:00
ssadump.go go.tools/ssa: preserve type of &&/|| operands in result. 2013-08-19 12:50:40 -04:00
stdlib_test.go go.tools/ssa: fix windows build 2013-08-02 16:25:49 +10:00
testmain.go go.tools/ssa: synthesize main functions for test packages. 2013-08-19 15:00:25 -04:00
util.go go.tools/ssa: (another) major refactoring of method-set logic. 2013-07-26 11:22:34 -04:00
visit.go go.tools/go/types: *interface types have no methods 2013-08-14 11:02:10 -07:00