From: Russ Cox Date: Thu, 13 Oct 2011 16:17:55 +0000 (-0400) Subject: gc: implement new return restriction X-Git-Tag: weekly.2011-10-18~93 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c18d1a78a4cb8e0052fb272964bbf94b5855c6f4;p=gostls13.git gc: implement new return restriction R=ken2 CC=golang-dev https://golang.org/cl/5245056 --- diff --git a/src/cmd/gc/go.y b/src/cmd/gc/go.y index 63cff8655c..ea467cd23e 100644 --- a/src/cmd/gc/go.y +++ b/src/cmd/gc/go.y @@ -1546,6 +1546,18 @@ non_dcl_stmt: { $$ = nod(ORETURN, N, N); $$->list = $2; + if($$->list == nil) { + NodeList *l; + + for(l=curfn->dcl; l; l=l->next) { + if(l->n->class == PPARAM) + continue; + if(l->n->class != PPARAMOUT) + break; + if(l->n->sym->def != l->n) + yyerror("%s is shadowed during return", l->n->sym->name); + } + } } stmt_list: