mirror of https://github.com/golang/go.git
Support for:
(*reflect.rtype).Field
(*reflect.rtype).FieldByName
reflect.MakeSlice
runtime.SetFinalizer
Details:
- analysis locates ssa.Functions for (reflect.Value).Call
and runtime.SetFinalizer during startup to that it can
special-case them during genCall. ('Call' is forthcoming.)
- The callsite.targets mechanism is only used for dynamic
calls now. For static calls we call callEdge during constraint
generation; this is a minor optimisation.
- Static calls to SetFinalizer are inlined so that the call
appears to go direct to the finalizer. (We'll use the same
trick for (reflect.Value).Call.)
- runtime.FuncForPC: treat as a no-op.
- Fixed pointer_test to properly deal with expectations
that are multi-sets.
- Inlined rtypeMethodByNameConstraint.addMethod.
- More tests.
R=crawshaw
CC=golang-dev
https://golang.org/cl/14682045
|
||
|---|---|---|
| .. | ||
| testdata | ||
| TODO | ||
| analysis.go | ||
| api.go | ||
| callgraph.go | ||
| doc.go | ||
| example_test.go | ||
| gen.go | ||
| intrinsics.go | ||
| labels.go | ||
| pointer_test.go | ||
| print.go | ||
| reflect.go | ||
| solve.go | ||
| util.go | ||