]> Cypherpunks repositories - gostls13.git/commitdiff
function literals
authorKai Backman <kaib@golang.org>
Mon, 19 Oct 2009 19:44:08 +0000 (12:44 -0700)
committerKai Backman <kaib@golang.org>
Mon, 19 Oct 2009 19:44:08 +0000 (12:44 -0700)
go/test: passes 86% (297/343)

R=rsc
APPROVED=rsc
DELTA=14  (10 added, 1 deleted, 3 changed)
OCL=35881
CL=35884

src/cmd/5g/gsubr.c
test/arm-pass.txt

index ae85798b65bc8bf171a4392b84ff2a5985aa6613..4a4c21ba9e66bc8aea15b4ff9683a5c6f3d68974 100644 (file)
@@ -189,7 +189,7 @@ isfat(Type *t)
 void
 afunclit(Addr *a)
 {
-       if(a->type == D_ADDR && a->name == D_EXTERN || a->type == D_REG) {
+       if(a->type == D_CONST && a->name == D_EXTERN || a->type == D_REG) {
                a->type = D_OREG;
        }
 }
@@ -1099,6 +1099,7 @@ naddr(Node *n, Addr *a)
                        break;
                case PFUNC:
                        a->name = D_EXTERN;
+                       a->type = D_CONST;
                        break;
                }
                break;
@@ -1147,13 +1148,18 @@ naddr(Node *n, Addr *a)
 
        case OADDR:
                naddr(n->left, a);
-               if(a->type == D_OREG) {
+               switch(a->type) {
+               case D_OREG:
                        a->type = D_CONST;
                        break;
-               } else if (a->type == D_REG) {
+
+               case D_REG:
+               case D_CONST:
                        break;
+               
+               default:
+                       fatal("naddr: OADDR %d\n", a->type);
                }
-               fatal("naddr: OADDR %d\n", a->type);
        }
 }
 
index 4953c32a8187fb44e60ef539a5b22097cf6d0705..626051019a812074178c98326180149164d1795d 100644 (file)
@@ -72,6 +72,7 @@ fixedbugs/bug051.go
 fixedbugs/bug052.go
 fixedbugs/bug053.go
 fixedbugs/bug054.go
+fixedbugs/bug055.go
 fixedbugs/bug056.go
 fixedbugs/bug057.go
 fixedbugs/bug058.go
@@ -253,6 +254,7 @@ ken/interfun.go
 ken/intervar.go
 ken/label.go
 ken/mfunc.go
+ken/ptrfun.go
 ken/ptrvar.go
 ken/range.go
 ken/rob1.go
@@ -281,6 +283,7 @@ parentype.go
 printbig.go
 rename.go
 rename1.go
+runtime.go
 sieve.go
 sigchld.go
 simassign.go