* fix setting minval for enum with specified values

This commit is contained in:
peter 2005-01-04 16:38:54 +00:00
parent 537dcdde20
commit fd3f6a9017

View File

@ -2281,17 +2281,26 @@ implementation
typ:=enumsym; typ:=enumsym;
definition:=def; definition:=def;
value:=v; value:=v;
{ check for jumps } { First entry? Then we need to set the minval }
if v>def.max+1 then if def.firstenum=nil then
def.has_jumps:=true; begin
{ update low and high } if v>0 then
if def.min>v then def.has_jumps:=true;
def.setmin(v); def.setmin(v);
if def.max<v then def.setmax(v);
def.setmax(v); end
else
begin
{ check for jumps }
if v>def.max+1 then
def.has_jumps:=true;
{ update low and high }
if def.min>v then
def.setmin(v);
if def.max<v then
def.setmax(v);
end;
order; order;
{ nextenum:=Tenumsym(def.firstenum);
def.firstenum:=self;}
end; end;
@ -2560,7 +2569,10 @@ implementation
end. end.
{ {
$Log$ $Log$
Revision 1.197 2005-01-03 22:27:56 peter Revision 1.198 2005-01-04 16:38:54 peter
* fix setting minval for enum with specified values
Revision 1.197 2005/01/03 22:27:56 peter
* insert stack_check helper call before doing register allocation * insert stack_check helper call before doing register allocation
so the used registers can't be reused when parameters are loaded so the used registers can't be reused when parameters are loaded
into register variables into register variables