]> Cypherpunks.ru repositories - gostls13.git/commitdiff
gc: inlining, allow empty bodies, fix _ arguments.
authorLuuk van Dijk <lvd@golang.org>
Thu, 15 Dec 2011 16:50:59 +0000 (17:50 +0100)
committerLuuk van Dijk <lvd@golang.org>
Thu, 15 Dec 2011 16:50:59 +0000 (17:50 +0100)
R=rsc
CC=golang-dev
https://golang.org/cl/5487077

src/cmd/gc/fmt.c
src/cmd/gc/inl.c
test/cmp.go

index c627adb34f262c66745edcd64ea18db59bdfdadb..f3be53c8fbf21bfdd4fedf1456b69f740ea6dbdb 100644 (file)
@@ -914,6 +914,9 @@ stmtfmt(Fmt *f, Node *n)
                        fmtprint(f, "%#O", n->op);
                break;
 
+       case OEMPTY:
+               break;
+
        case OLABEL:
                fmtprint(f, "%N: ", n->left);
                break;
@@ -1018,6 +1021,7 @@ static int opprec[] = {
        [ODCL] = -1,
        [ODCLFIELD] = -1,
        [ODEFER] = -1,
+       [OEMPTY] = -1,
        [OFALL] = -1,
        [OFOR] = -1,
        [OIF] = -1,
index 196a6eff3d8d89c2eeb1e2981ccf1203f8ad65fe..e2d122c91dc64726c4b760a38c6281fa81551551 100644 (file)
@@ -60,7 +60,7 @@ caninl(Node *fn)
        case ORETURN:
        case OAS:
        case OAS2:
-         // case OEMPTY:  // TODO
+       case OEMPTY:
                break;
        }
 
@@ -449,7 +449,7 @@ mkinlcall(Node **np, Node *fn)
                // TODO check that n->list->n is a call?
                as->rlist = n->list;
                for(t = getinargx(fn->type)->type; t; t=t->down) {
-                       if(t->nname) {
+                       if(t->nname && !isblank(t->nname)) {
                                if(!t->nname->inlvar)
                                        fatal("missing inlvar for %N\n", t->nname);
                                as->list = list(as->list, t->nname->inlvar);
@@ -460,7 +460,7 @@ mkinlcall(Node **np, Node *fn)
        } else {
                ll = n->list;
                for(t = getinargx(fn->type)->type; t && ll; t=t->down) {
-                       if(t->nname) {
+                       if(t->nname && !isblank(t->nname)) {
                                if(!t->nname->inlvar)
                                        fatal("missing inlvar for %N\n", t->nname);
                                as->list = list(as->list, t->nname->inlvar);
index f079c5d560b33f3378c0d5f913b8dfcc62a3fa48..d51a11aa2462e22200e8b6cbb6fdd45977a0c3ae 100644 (file)
@@ -8,7 +8,8 @@ package main
 
 import "unsafe"
 
-func use(bool) {}
+var global bool
+func use(b bool) { global = b }
 
 func stringptr(s string) uintptr { return *(*uintptr)(unsafe.Pointer(&s)) }