mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-04 17:45:28 +01:00
* fixed overflow
git-svn-id: trunk@8577 -
This commit is contained in:
parent
c806f3e494
commit
eb7aedc285
@ -126,6 +126,7 @@ implementation
|
|||||||
i:byte;
|
i:byte;
|
||||||
begin
|
begin
|
||||||
analizeset:=false;
|
analizeset:=false;
|
||||||
|
fillchar(setparts,sizeof(setparts),0);
|
||||||
numparts:=0;
|
numparts:=0;
|
||||||
compares:=0;
|
compares:=0;
|
||||||
{ Lots of comparisions take a lot of time, so do not allow
|
{ Lots of comparisions take a lot of time, so do not allow
|
||||||
@ -663,6 +664,7 @@ implementation
|
|||||||
var
|
var
|
||||||
oldflowcontrol: tflowcontrol;
|
oldflowcontrol: tflowcontrol;
|
||||||
i : longint;
|
i : longint;
|
||||||
|
distv,
|
||||||
lv,hv,
|
lv,hv,
|
||||||
max_label: tconstexprint;
|
max_label: tconstexprint;
|
||||||
labelcnt : aint;
|
labelcnt : aint;
|
||||||
@ -761,14 +763,10 @@ implementation
|
|||||||
{ than the positive range of a aint }
|
{ than the positive range of a aint }
|
||||||
|
|
||||||
if (min_label<0) and (max_label>0) then
|
if (min_label<0) and (max_label>0) then
|
||||||
begin
|
distv:=max_label+min_label
|
||||||
if min_label=TConstExprInt(int64(low(aint))) then
|
|
||||||
dist:=aword(max_label.uvalue)+aword(low(aint))
|
|
||||||
else
|
|
||||||
dist:=aword(max_label.uvalue)+aword(-min_label.svalue)
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
dist:=max_label.uvalue-min_label.uvalue;
|
distv:=max_label-min_label;
|
||||||
|
dist:=distv.uvalue;
|
||||||
|
|
||||||
{ optimize for size ? }
|
{ optimize for size ? }
|
||||||
if cs_opt_size in current_settings.optimizerswitches then
|
if cs_opt_size in current_settings.optimizerswitches then
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user