]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: handle TPTR32 like TPTR64 in smallintconst
authorMatthew Dempsky <mdempsky@google.com>
Wed, 3 Oct 2018 22:47:16 +0000 (15:47 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Thu, 4 Oct 2018 04:08:00 +0000 (04:08 +0000)
In preparation for followup CL merging TPTR32 and TPTR64, move TPTR32
from the small-types fast path to the generic 64-bit fallback code so
that it's in the same case clause as TPTR64.

This should be safe, but theoretically it could change semantics
because TPTR32 used to always be assumed to be "small", whereas now it
will only be considered small for values less than 1<<31.

This change is done in a separate CL so that it's more easily
identified by git bisection in case it does introduce regressions.

Change-Id: I6c7bb253d4e4d95c530a6e05a1147905674b55ca
Reviewed-on: https://go-review.googlesource.com/c/139517
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/cmd/compile/internal/gc/const.go

index 02d51678be060bf17df627b3cbd9e1ef5f205edc..a80455a30c6deaa8c0aa3f46f94287683e248869 100644 (file)
@@ -1479,11 +1479,10 @@ func smallintconst(n *Node) bool {
                        TUINT16,
                        TINT32,
                        TUINT32,
-                       TBOOL,
-                       TPTR32:
+                       TBOOL:
                        return true
 
-               case TIDEAL, TINT64, TUINT64, TPTR64:
+               case TIDEAL, TINT64, TUINT64, TPTR32, TPTR64:
                        v, ok := n.Val().U.(*Mpint)
                        if ok && v.Cmp(minintval[TINT32]) > 0 && v.Cmp(maxintval[TINT32]) < 0 {
                                return true