]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: fix mknode script
authorKeith Randall <khr@golang.org>
Tue, 19 Jul 2022 16:07:38 +0000 (09:07 -0700)
committerKeith Randall <khr@google.com>
Tue, 19 Jul 2022 19:51:06 +0000 (19:51 +0000)
It's not currently working. Somehow a field of type []constant.Value
causes it to barf. (That field was added with jump table statements.)

Also added some instructions about how to run it correctly (which took
me a suprisingly long time to figure out).

Larger improvements coming, but this gets us to a working state
and is safe for 1.19.

Change-Id: I3027356fde1294942e87d075ca28bb40d2c0d6c3
Reviewed-on: https://go-review.googlesource.com/c/go/+/418234
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Keith Randall <khr@golang.org>

src/cmd/compile/internal/ir/mini.go
src/cmd/compile/internal/ir/mknode.go

index 98c0ffa5b069912d75f22eca964039d6f84244f3..48f5eccf34f988e53092a558e8f66699476ba7bd 100644 (file)
@@ -3,6 +3,7 @@
 // license that can be found in the LICENSE file.
 
 //go:generate go run -mod=mod mknode.go
+// Note: see comment at top of mknode.go
 
 package ir
 
index 5a0aaadf16fa66ed864cf1903b8688620293d6e5..af8869d1225a1105a33b40f7d8915f4a375d533b 100644 (file)
@@ -5,6 +5,12 @@
 //go:build ignore
 // +build ignore
 
+// Note: this program must be run with the GOROOT
+// environment variable set to the root of this tree.
+//   GOROOT=...
+//   cd $GOROOT/src/cmd/compile/internal/ir
+//   ../../../../../bin/go run -mod=mod mknode.go
+
 package main
 
 import (
@@ -154,6 +160,9 @@ func forNodeFields(named *types.Named, prologue, singleTmpl, sliceTmpl, epilogue
                }
 
                tmpl, what := singleTmpl, types.TypeString(typ, types.RelativeTo(irPkg))
+               if what == "go/constant.Value" {
+                       return false
+               }
                if implementsNode(typ) {
                        if slice != nil {
                                helper := strings.TrimPrefix(what, "*") + "s"