aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Dempsky <mdempsky@google.com>2018-03-31 15:53:21 -0700
committerMatthew Dempsky <mdempsky@google.com>2018-04-01 06:55:54 +0000
commitfdf33730e1f84a5f0cd13bcbf2efbdceedab1114 (patch)
tree3786c6b11706c87e78fc905de2023a3cd4c0dc32
parent917c33fe8672116b04848cf11545296789cafd3b (diff)
downloadgo-fdf33730e1f84a5f0cd13bcbf2efbdceedab1114.tar.xz
cmd/compile: refactor constant node constructors
Passes toolstash-check. Change-Id: I6a2d46e69d4d3a06858c80c4ea1ad3f5a58f6956 Reviewed-on: https://go-review.googlesource.com/103859 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-rw-r--r--src/cmd/compile/internal/gc/const.go1
-rw-r--r--src/cmd/compile/internal/gc/subr.go28
2 files changed, 9 insertions, 20 deletions
diff --git a/src/cmd/compile/internal/gc/const.go b/src/cmd/compile/internal/gc/const.go
index af84005908..8422eec17e 100644
--- a/src/cmd/compile/internal/gc/const.go
+++ b/src/cmd/compile/internal/gc/const.go
@@ -1246,6 +1246,7 @@ illegal:
}
}
+// nodlit returns a new untyped constant with value v.
func nodlit(v Val) *Node {
n := nod(OLITERAL, nil, nil)
n.SetVal(v)
diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go
index 96c1fc1cca..7354625de0 100644
--- a/src/cmd/compile/internal/gc/subr.go
+++ b/src/cmd/compile/internal/gc/subr.go
@@ -413,21 +413,15 @@ func (x methcmp) Less(i, j int) bool {
}
func nodintconst(v int64) *Node {
- c := nod(OLITERAL, nil, nil)
- c.SetAddable(true)
- c.SetVal(Val{new(Mpint)})
- c.Val().U.(*Mpint).SetInt64(v)
- c.Type = types.Types[TIDEAL]
- return c
+ u := new(Mpint)
+ u.SetInt64(v)
+ return nodlit(Val{u})
}
func nodfltconst(v *Mpflt) *Node {
- c := nod(OLITERAL, nil, nil)
- c.SetAddable(true)
- c.SetVal(Val{newMpflt()})
- c.Val().U.(*Mpflt).Set(v)
- c.Type = types.Types[TIDEAL]
- return c
+ u := newMpflt()
+ u.Set(v)
+ return nodlit(Val{u})
}
func nodconst(n *Node, t *types.Type, v int64) {
@@ -444,17 +438,11 @@ func nodconst(n *Node, t *types.Type, v int64) {
}
func nodnil() *Node {
- c := nodintconst(0)
- c.SetVal(Val{new(NilVal)})
- c.Type = types.Types[TNIL]
- return c
+ return nodlit(Val{new(NilVal)})
}
func nodbool(b bool) *Node {
- c := nodintconst(0)
- c.SetVal(Val{b})
- c.Type = types.Idealbool
- return c
+ return nodlit(Val{b})
}
func nodstr(s string) *Node {