tools/go
Alan Donovan 43c97eab79 go.tools/go/pointer: fix solver nontermination bug due to reflective type construction cycles.
Programs such as this cause the PtrTo solver to attempt to
enumerate an infinite set of types {T, *T, ..., *******T, etc}.

        t := reflect.TypeOf(T{})
        for {
                t = reflect.PtrTo(t)
        }

The fix is to bound the depth of reflectively created types at
about 4 map/chan/slice/pointer constructors.

+ test.

LGTM=gri
R=gri
CC=crawshaw, golang-codereviews
https://golang.org/cl/102030044
2014-05-30 16:27:51 -04:00
..
callgraph go/callgraph: fix asymptote trap in DeleteSyntheticNodes. 2014-05-08 14:03:06 -04:00
exact go.tools/go/exact: tweaked documentation 2014-04-16 13:07:59 -07:00
gccgoimporter go.tools/go/gccgoimporter: use gccgo -dumpversion 2014-04-17 13:40:42 -07:00
gcimporter go.tools/go/types: internal cleanups 2014-02-20 14:52:21 -08:00
importer go.tools/go/importer: record low-level encoding format 2014-03-31 09:49:52 -07:00
loader go.tools: fix various minor issues found by go vet 2014-05-19 08:47:28 -07:00
pointer go.tools/go/pointer: fix solver nontermination bug due to reflective type construction cycles. 2014-05-30 16:27:51 -04:00
ssa go.tools/all: the the thes are too frequent, it's clear that that's not what we want 2014-05-19 09:48:30 -07:00
types go.tools/go/types: package name must not be blank 2014-05-22 13:45:29 -07:00
vcs go.tools: fix various minor issues found by go vet 2014-05-19 08:47:28 -07:00