diff options
author | Luuk van Dijk <lvd@golang.org> | 2011-12-15 17:50:59 +0100 |
---|---|---|
committer | Luuk van Dijk <lvd@golang.org> | 2011-12-15 17:50:59 +0100 |
commit | 9956ec696cee09be6b89514d30fe7a3222af716e (patch) | |
tree | 608b0f3ee102b82f95d89992870355a9b085a876 | |
parent | f9561c87cd7bd5a88fb06ce12dce654f1342f1e4 (diff) | |
download | go-9956ec696cee09be6b89514d30fe7a3222af716e.tar.gz |
gc: inlining, allow empty bodies, fix _ arguments.
R=rsc
CC=golang-dev
http://codereview.appspot.com/5487077
-rw-r--r-- | src/cmd/gc/fmt.c | 4 | ||||
-rw-r--r-- | src/cmd/gc/inl.c | 6 | ||||
-rw-r--r-- | test/cmp.go | 3 |
3 files changed, 9 insertions, 4 deletions
diff --git a/src/cmd/gc/fmt.c b/src/cmd/gc/fmt.c index c627adb34..f3be53c8f 100644 --- a/src/cmd/gc/fmt.c +++ b/src/cmd/gc/fmt.c @@ -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, diff --git a/src/cmd/gc/inl.c b/src/cmd/gc/inl.c index 196a6eff3..e2d122c91 100644 --- a/src/cmd/gc/inl.c +++ b/src/cmd/gc/inl.c @@ -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); diff --git a/test/cmp.go b/test/cmp.go index f079c5d56..d51a11aa2 100644 --- a/test/cmp.go +++ b/test/cmp.go @@ -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)) } |