]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/5g, cmd/8g: fix build
authorRuss Cox <rsc@golang.org>
Wed, 2 Apr 2014 00:24:53 +0000 (20:24 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 2 Apr 2014 00:24:53 +0000 (20:24 -0400)
Botched during CL 83090046.

TBR=khr
CC=golang-codereviews
https://golang.org/cl/83070046

src/cmd/5g/ggen.c
src/cmd/8g/ggen.c

index c85f680cdad1c233bbadb9df1efe1af6944b4774..b5173a2137f95d0f3ac55545e91b1a036c508359 100644 (file)
@@ -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);
index 2ece1881280497e73e297b2d8923850796cc7e1a..8388e64bd50225f0e455762781080f838562da97 100644 (file)
@@ -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);
        }