mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 01:39:27 +02:00
* catch exceptions in all variants of TextToFloat properly
* force x87 exceptions to be thrown on all platforms using x87 git-svn-id: trunk@44070 -
This commit is contained in:
parent
d9f4c85d2e
commit
f1eccca3a6
@ -1213,7 +1213,18 @@ Begin
|
||||
P:=Pos(FormatSettings.DecimalSeparator,S);
|
||||
If (P<>0) Then
|
||||
S[P] := '.';
|
||||
Val(trim(S),Value,E);
|
||||
try
|
||||
Val(trim(S),Value,E);
|
||||
{ on x87, a floating point exception may be pending in case of an invalid
|
||||
input value -> trigger it now }
|
||||
{$if defined(cpui386) or (defined(cpux86_64) and not(defined(win64))) or defined(cpui8086)}
|
||||
asm
|
||||
fwait
|
||||
end;
|
||||
{$endif}
|
||||
except
|
||||
E:=1;
|
||||
end;
|
||||
Result:=(E=0);
|
||||
End;
|
||||
|
||||
@ -1273,7 +1284,7 @@ Begin
|
||||
end;
|
||||
{ on x87, a floating point exception may be pending in case of an invalid
|
||||
input value -> trigger it now }
|
||||
{$ifdef cpux86}
|
||||
{$if defined(cpui386) or (defined(cpux86_64) and not(defined(win64))) or defined(cpui8086)}
|
||||
asm
|
||||
fwait
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user