* When inlining currency (ordinal) multiplication, change resultdef to int64, in order to be consistent with behavior of generic handling. Fixes compilation faliure after r26500, Mantis #25565.

git-svn-id: trunk@26534 -
This commit is contained in:
sergei 2014-01-20 17:16:11 +00:00
parent 24e9e8a68c
commit 8b3217815b

View File

@ -2642,6 +2642,16 @@ implementation
end
else
begin
{ can full 64-bit multiplication be handled inline? }
if not use_generic_mul64bit then
begin
{ generic handling replaces this node with call to fpc_mul_int64,
whose result is int64 }
if is_currency(resultdef) then
resultdef:=s64inttype;
exit;
end;
{ when currency is used set the result of the
parameters to s64bit, so they are not converted }
if is_currency(resultdef) then
@ -2650,14 +2660,6 @@ implementation
right.resultdef:=s64inttype;
end;
{ can full 64-bit multiplication be handled inline? }
if not use_generic_mul64bit then
begin
firstpass(left);
firstpass(right);
exit;
end;
{ otherwise, create the parameters for the helper }
right := ccallparanode.create(
cordconstnode.create(ord(cs_check_overflow in current_settings.localswitches),pasbool8type,true),