From: Russ Cox Date: Thu, 16 Oct 2008 00:09:42 +0000 (-0700) Subject: error about & at top level until it is safe X-Git-Tag: weekly.2009-11-06~2983 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7cd173a4f893c3e86d34c95f78aa5d3758b14c89;p=gostls13.git error about & at top level until it is safe R=ken OCL=17241 CL=17241 --- diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h index eb8806779e..92dc1260c9 100644 --- a/src/cmd/gc/go.h +++ b/src/cmd/gc/go.h @@ -468,6 +468,8 @@ EXTERN int32 thunk; EXTERN int exporting; +EXTERN int func; + /* * y.tab.c */ diff --git a/src/cmd/gc/go.y b/src/cmd/gc/go.y index f08421b5d4..d36b74621c 100644 --- a/src/cmd/gc/go.y +++ b/src/cmd/gc/go.y @@ -754,6 +754,8 @@ uexpr: } | '&' uexpr { + if($2->op == OCONV && !func) + yyerror("& of composite literal at top level"); $$ = nod(OADDR, $2, N); } | '+' uexpr @@ -1179,11 +1181,13 @@ xfndcl: { maxarg = 0; stksize = 0; + func++; } fndcl fnbody { $$ = $3; $$->nbody = $4; funcbody($$); + func--; } fndcl: