no message

This commit is contained in:
florian 2003-10-26 14:12:44 +00:00
parent 6906e33275
commit 404d7fdc70
3 changed files with 114 additions and 0 deletions

34
tests/webtbf/tw2129.pp Normal file
View File

@ -0,0 +1,34 @@
{ %version=1.1 }
{ %fail }
{ Source provided for Free Pascal Bug Report 2129 }
{ Submitted by "Bill Rayer" on 2002-09-18 }
{ e-mail: lingolanguage@hotmail.com }
{$mode delphi}
(*
Comp() cast has different effect in FPC.
Compiles using Delphi4:
dcc32 -CC fpc19
Compiles in FPC 1.0.6:
ppc386 -WC fpc19
When run, the Delphi version shows -6.5E+18, but the FPC version
shows zero. In Delphi, the comp() cast actually moves 8 bytes from
the double into the comp without converting the data, but FPC uses
floating point instructions to convert the data and therefore prints
zero.
In Delphi, if you want to convert a double to a float, you just use
the assignment "comp1 := dbl1" which corresponds to the FLD/FIST
opcodes. FPC should not use the comp() cast for doing this, since
it introduces a subtle incompatibility with Delphi.
*)
program fpc19;
var
single1 : single;
dbl1 : double;
begin
single1 := single(dbl1);
end.

41
tests/webtbs/tw2129.pp Normal file
View File

@ -0,0 +1,41 @@
{ %version=1.1 }
{ Source provided for Free Pascal Bug Report 2129 }
{ Submitted by "Bill Rayer" on 2002-09-18 }
{ e-mail: lingolanguage@hotmail.com }
{$mode delphi}
(*
Comp() cast has different effect in FPC.
Compiles using Delphi4:
dcc32 -CC fpc19
Compiles in FPC 1.0.6:
ppc386 -WC fpc19
When run, the Delphi version shows -6.5E+18, but the FPC version
shows zero. In Delphi, the comp() cast actually moves 8 bytes from
the double into the comp without converting the data, but FPC uses
floating point instructions to convert the data and therefore prints
zero.
In Delphi, if you want to convert a double to a float, you just use
the assignment "comp1 := dbl1" which corresponds to the FLD/FIST
opcodes. FPC should not use the comp() cast for doing this, since
it introduces a subtle incompatibility with Delphi.
*)
program fpc19;
var
comp1 : comp;
dbl1 : double;
s : string;
begin
dbl1 := -1e-128;
comp1 := comp(dbl1);
str(comp1,s);
if s<>'-6.53142228756617E+0018' then
begin
writeln('error');
halt(1);
end;
end.

39
tests/webtbs/tw2129b.pp Normal file
View File

@ -0,0 +1,39 @@
{ %version=1.1 }
{ Source provided for Free Pascal Bug Report 2129 }
{ Submitted by "Bill Rayer" on 2002-09-18 }
{ e-mail: lingolanguage@hotmail.com }
(*
Comp() cast has different effect in FPC.
Compiles using Delphi4:
dcc32 -CC fpc19
Compiles in FPC 1.0.6:
ppc386 -WC fpc19
When run, the Delphi version shows -6.5E+18, but the FPC version
shows zero. In Delphi, the comp() cast actually moves 8 bytes from
the double into the comp without converting the data, but FPC uses
floating point instructions to convert the data and therefore prints
zero.
In Delphi, if you want to convert a double to a float, you just use
the assignment "comp1 := dbl1" which corresponds to the FLD/FIST
opcodes. FPC should not use the comp() cast for doing this, since
it introduces a subtle incompatibility with Delphi.
*)
program fpc19;
var
comp1 : comp;
dbl1 : double;
s : string;
begin
dbl1 := -1e-128;
comp1 := comp(dbl1);
str(comp1,s);
if s<>' 0.00000000000000E+0000' then
begin
writeln('error: ',s);
halt(1);
end;
end.