]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: cleanup OREAL/OIMAG constant folding
authorMatthew Dempsky <mdempsky@google.com>
Wed, 13 Mar 2019 22:51:15 +0000 (15:51 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Wed, 13 Mar 2019 23:31:04 +0000 (23:31 +0000)
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 <mdempsky@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

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

index 825f08ca8ab0893866e9a0399b7098b469b27c34..ef4b933f68db8421c71cb890609d808448a099f4 100644 (file)
@@ -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")
                        }