1
0
mirror of https://github.com/golang/go synced 2024-11-18 21:44:45 -07:00

handle negative numeric constants in import.

(fixes bugs/bug106)

package bug0
export const A = -1

package bug1
import "bug0"

R=ken
DELTA=21  (19 added, 0 deleted, 2 changed)
OCL=15901
CL=15968
This commit is contained in:
Russ Cox 2008-09-26 11:44:20 -07:00
parent ac05579345
commit c3d841f5d4

View File

@ -56,6 +56,8 @@
%type <type> structtype interfacetype convtype
%type <type> Achantype Bchantype
%type <val> hidden_constant
%left LOROR
%left LANDAND
%left LCOMM
@ -1555,11 +1557,11 @@ hidden_import:
}
/* constants */
| LCONST hidden_importsym LLITERAL
| LCONST hidden_importsym hidden_constant
{
doimportc1($2, &$3);
}
| LCONST hidden_importsym hidden_importsym LLITERAL
| LCONST hidden_importsym hidden_importsym hidden_constant
{
doimportc2($2, $3, &$4);
}
@ -1616,6 +1618,23 @@ hidden_import:
doimport9($2, $3);
}
hidden_constant:
LLITERAL
| '-' LLITERAL
{
$$ = $2;
switch($$.ctype){
case CTINT:
mpnegfix($$.u.xval);
break;
case CTFLT:
mpnegflt($$.u.fval);
break;
default:
yyerror("bad negated constant");
}
}
isym:
sym1 '.' sym2
{