* fixed crash when writing a currency value with a specified number

of fractional digits in case it's not the last value of the
    write(ln) statement (mantis #10920)

git-svn-id: trunk@10421 -
This commit is contained in:
Jonas Maebe 2008-03-02 10:22:25 +00:00
parent b8e904f531
commit d80d3f36d2
3 changed files with 22 additions and 1 deletions

1
.gitattributes vendored
View File

@ -8004,6 +8004,7 @@ tests/webtbs/tw10890.pp svneol=native#text/plain
tests/webtbs/tw10897.pp svneol=native#text/plain
tests/webtbs/tw1090.pp svneol=native#text/plain
tests/webtbs/tw1092.pp svneol=native#text/plain
tests/webtbs/tw10920.pp svneol=native#text/plain
tests/webtbs/tw1096.pp svneol=native#text/plain
tests/webtbs/tw1097.pp svneol=native#text/plain
tests/webtbs/tw1103.pp svneol=native#text/plain

View File

@ -604,7 +604,9 @@ implementation
fracpara.right := ccallparanode.create(
cordconstnode.create(ord(tfloatdef(para.left.resultdef).floattype),
s32inttype,true),nil);
end;
end
else
fracpara.right:=nil;
end;
if para.left.resultdef.typ=enumdef then
begin

18
tests/webtbs/tw10920.pp Normal file
View File

@ -0,0 +1,18 @@
program bug_fmtcurrncy;
// If write/writeln parameter list includes any item FOLLOWING a
// currency variable with format specs, the compiler throws
// an Access violation exception.
var
V: currency; // currency blows up, all other real types are Ok
BEGIN
V := 34567;
write( V:0:2, 'x' ); // This form produces the error
write( V:0:2 ); // This equivalent form compiles Ok
writeln( 'x' );
END.