]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: fix fieldtrack experiment
authorKeith Randall <khr@golang.org>
Thu, 3 Mar 2016 04:54:41 +0000 (20:54 -0800)
committerKeith Randall <khr@golang.org>
Thu, 3 Mar 2016 05:34:48 +0000 (05:34 +0000)
The ODOTPTRs introduced in CL #19814 don't have field names,
just offsets.  The fieldtrack experiment crashes when
examining them.  Instead, just ignore them.  We'll never track
these fields anyway.

It would be nice to have the runtime type struct build in the
compiler (like we do sudog, for example) so we could use its
fieldnames.  Doesn't seem worth it just for this CL.

Change-Id: I5e75024f5a8333eb7439543b3f466ea40213a1b9
Reviewed-on: https://go-review.googlesource.com/20157
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/compile/internal/gc/walk.go

index 2abc8df43c0ab8be3236ce19942434b9cf8b217b..dba8ad3fde8a762a8947feea8c267f94c1f0d2af 100644 (file)
@@ -3763,6 +3763,11 @@ func usefield(n *Node) {
        case ODOT, ODOTPTR:
                break
        }
+       if n.Right == nil {
+               // No field name.  This DOTPTR was built by the compiler for access
+               // to runtime data structures.  Ignore.
+               return
+       }
 
        t := n.Left.Type
        if Isptr[t.Etype] {