diff --git a/util/opt/getline.c b/util/opt/getline.c index 49b0809c..d1080f9c 100644 --- a/util/opt/getline.c +++ b/util/opt/getline.c @@ -1,3 +1,7 @@ +#ifndef NORCSID +static char rcsid[] = "$Header$"; +#endif + #include #include "param.h" #include "types.h" @@ -468,9 +472,11 @@ int inpseudo(n) short n; { error("This optimizer cannot handle wordsize>2"); #endif break; + case ms_gto: + curpro.gtoproc=1; + /* Treat as empty mes ms_reg */ case ms_reg: - if (prodepth==0) - error("MES REG outside procedure"); + tstinpro(); regvar(lnp->l_a.la_arg->a_next); oldline(lnp); lnp=newline(OPNO); @@ -497,6 +503,7 @@ int inpseudo(n) short n; { error("bad second arg of PRO"); } prodepth++; + curpro.gtoproc=0; if (prodepth>1) { register i; @@ -545,5 +552,5 @@ int inpseudo(n) short n; { tstinpro() { if (prodepth==0) - error("Instruction or label not allowed outside procedure"); + error("This is not allowed outside a procedure"); }