]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/gc: implement revised rule for shifts in equality.
authorRémy Oudompheng <oudomphe@phare.normalesup.org>
Tue, 19 Mar 2013 23:19:11 +0000 (00:19 +0100)
committerRémy Oudompheng <oudomphe@phare.normalesup.org>
Tue, 19 Mar 2013 23:19:11 +0000 (00:19 +0100)
R=rsc, daniel.morsing
CC=golang-dev
https://golang.org/cl/7613046

src/cmd/gc/const.c

index db9693007d317c7d1b8046f3a2ff1fbdb49460b2..add438daf893d73fa62078960dff91bf1eec9e48 100644 (file)
@@ -1211,6 +1211,7 @@ void
 defaultlit2(Node **lp, Node **rp, int force)
 {
        Node *l, *r;
+       int lkind, rkind;
 
        l = *lp;
        r = *rp;
@@ -1230,18 +1231,20 @@ defaultlit2(Node **lp, Node **rp, int force)
                convlit(lp, types[TBOOL]);
                convlit(rp, types[TBOOL]);
        }
-       if(isconst(l, CTCPLX) || isconst(r, CTCPLX)) {
+       lkind = idealkind(l);
+       rkind = idealkind(r);
+       if(lkind == CTCPLX || rkind == CTCPLX) {
                convlit(lp, types[TCOMPLEX128]);
                convlit(rp, types[TCOMPLEX128]);
                return;
        }
-       if(isconst(l, CTFLT) || isconst(r, CTFLT)) {
+       if(lkind == CTFLT || rkind == CTFLT) {
                convlit(lp, types[TFLOAT64]);
                convlit(rp, types[TFLOAT64]);
                return;
        }
 
-       if(isconst(l, CTRUNE) || isconst(r, CTRUNE)) {
+       if(lkind == CTRUNE || rkind == CTRUNE) {
                convlit(lp, runetype);
                convlit(rp, runetype);
                return;