1
0
mirror of https://github.com/golang/go synced 2024-10-03 06:11:21 -06:00

cmd/gc: merge casep and casee labels

The code inside the casee and casep labels can perfectly be merged since
they essentially do the same. The character to be stored where cp points is
just the character contained by the c variable.

R=golang-dev, dave, rsc
CC=golang-dev
https://golang.org/cl/6845112
This commit is contained in:
Miquel Sabaté Solà 2012-12-11 12:23:04 -05:00 committed by Russ Cox
parent 3c6c88319e
commit 0dd0e1ad0c

View File

@ -1296,13 +1296,13 @@ tnum:
if(cp == lexbuf+2)
yyerror("malformed hex constant");
if(c == 'p')
goto casep;
goto caseep;
goto ncu;
}
}
if(c == 'p') // 0p begins floating point zero
goto casep;
goto caseep;
c1 = 0;
for(;;) {
@ -1320,7 +1320,7 @@ tnum:
if(c == '.')
goto casedot;
if(c == 'e' || c == 'E')
goto casee;
goto caseep;
if(c == 'i')
goto casei;
if(c1)
@ -1330,10 +1330,8 @@ tnum:
dc:
if(c == '.')
goto casedot;
if(c == 'e' || c == 'E')
goto casee;
if(c == 'p' || c == 'P')
goto casep;
if(c == 'e' || c == 'E' || c == 'p' || c == 'P')
goto caseep;
if(c == 'i')
goto casei;
@ -1369,29 +1367,8 @@ casedot:
if(c != 'e' && c != 'E')
goto caseout;
casee:
*cp++ = 'e';
c = getc();
if(c == '+' || c == '-') {
*cp++ = c;
c = getc();
}
if(!yy_isdigit(c))
yyerror("malformed fp constant exponent");
while(yy_isdigit(c)) {
if(cp+10 >= ep) {
yyerror("identifier too long");
errorexit();
}
*cp++ = c;
c = getc();
}
if(c == 'i')
goto casei;
goto caseout;
casep:
*cp++ = 'p';
caseep:
*cp++ = c;
c = getc();
if(c == '+' || c == '-') {
*cp++ = c;