From: Matthew Dempsky Date: Wed, 13 Mar 2019 22:51:15 +0000 (-0700) Subject: cmd/compile: cleanup OREAL/OIMAG constant folding X-Git-Tag: go1.13beta1~1050 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2d21bf4252781e3997c30a873e56325436ca3f76;p=gostls13.git cmd/compile: cleanup OREAL/OIMAG constant folding Based on suggestion from gri@ on golang.org/cl/166980. Passes toolstash-check. Change-Id: I79b66bb09b5635f3a9daecaa5d605b661a0ab108 Reviewed-on: https://go-review.googlesource.com/c/go/+/167501 Run-TryBot: Matthew Dempsky Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/compile/internal/gc/const.go b/src/cmd/compile/internal/gc/const.go index 825f08ca8a..ef4b933f68 100644 --- a/src/cmd/compile/internal/gc/const.go +++ b/src/cmd/compile/internal/gc/const.go @@ -676,17 +676,17 @@ func evconst(n *Node) { case OREAL, OIMAG: if nl.Op == OLITERAL { var re, im *Mpflt - switch consttype(nl) { - case CTINT, CTRUNE: + switch u := nl.Val().U.(type) { + case *Mpint: re = newMpflt() - re.SetInt(nl.Val().U.(*Mpint)) + re.SetInt(u) // im = 0 - case CTFLT: - re = nl.Val().U.(*Mpflt) + case *Mpflt: + re = u // im = 0 - case CTCPLX: - re = &nl.Val().U.(*Mpcplx).Real - im = &nl.Val().U.(*Mpcplx).Imag + case *Mpcplx: + re = &u.Real + im = &u.Imag default: Fatalf("impossible") }