From: Russ Cox Date: Wed, 2 Apr 2014 00:24:53 +0000 (-0400) Subject: cmd/5g, cmd/8g: fix build X-Git-Tag: go1.3beta1~222 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=9c8f11ff96dbef5ad6020f1c47d9e55b3284ec21;p=gostls13.git cmd/5g, cmd/8g: fix build Botched during CL 83090046. TBR=khr CC=golang-codereviews https://golang.org/cl/83070046 --- diff --git a/src/cmd/5g/ggen.c b/src/cmd/5g/ggen.c index c85f680cda..b5173a2137 100644 --- a/src/cmd/5g/ggen.c +++ b/src/cmd/5g/ggen.c @@ -472,13 +472,13 @@ cgen_ret(Node *n) { Prog *p; - genlist(n->list); // copy out args - if(hasdefer || curfn->exit) { - gjmp(retpc); - return; - } + if(n != N) + genlist(n->list); // copy out args + if(hasdefer) + ginscall(deferreturn, 0); + genlist(curfn->exit); p = gins(ARET, N, N); - if(n->op == ORETJMP) { + if(n != N && n->op == ORETJMP) { p->to.name = D_EXTERN; p->to.type = D_CONST; p->to.sym = linksym(n->left->sym); diff --git a/src/cmd/8g/ggen.c b/src/cmd/8g/ggen.c index 2ece188128..8388e64bd5 100644 --- a/src/cmd/8g/ggen.c +++ b/src/cmd/8g/ggen.c @@ -462,13 +462,13 @@ cgen_ret(Node *n) { Prog *p; - genlist(n->list); // copy out args - if(retpc) { - gjmp(retpc); - return; - } + if(n != N) + genlist(n->list); // copy out args + if(hasdefer) + ginscall(deferreturn, 0); + genlist(curfn->exit); p = gins(ARET, N, N); - if(n->op == ORETJMP) { + if(n != N && n->op == ORETJMP) { p->to.type = D_EXTERN; p->to.sym = linksym(n->left->sym); }