From 8172b79be1e5b7d8fbe0be1bd64f287d67cef6a7 Mon Sep 17 00:00:00 2001 From: marco Date: Fri, 21 Feb 2020 11:37:26 +0000 Subject: [PATCH] --- Merging r44055 into '.': U compiler/ncnv.pas --- Recording mergeinfo for merge of r44055 into '.': U . --- Merging r44098 into '.': G compiler/ncnv.pas --- Recording mergeinfo for merge of r44098 into '.': G . --- Merging r44099 into '.': G compiler/ncnv.pas --- Recording mergeinfo for merge of r44099 into '.': G . # revisions: 44055,44098,44099 git-svn-id: branches/fixes_3_2@44223 - --- compiler/ncnv.pas | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/compiler/ncnv.pas b/compiler/ncnv.pas index e678fc74cc..f9825d1ebc 100644 --- a/compiler/ncnv.pas +++ b/compiler/ncnv.pas @@ -1491,11 +1491,13 @@ implementation begin result:=caddnode.create(muln,getcopy,cordconstnode.create(10000,resultdef,false)); include(result.flags,nf_is_currency); + include(taddnode(result).left.flags,nf_internal); end else if is_currency(left.resultdef) then begin result:=cmoddivnode.create(divn,getcopy,cordconstnode.create(10000,resultdef,false)); include(result.flags,nf_is_currency); + include(taddnode(result).left.flags,nf_internal); end; end; end; @@ -2902,6 +2904,7 @@ implementation function ttypeconvnode.simplify(forinline : boolean): tnode; var hp: tnode; + v: Tconstexprint; {$ifndef CPUNO32BITOPS} foundsint: boolean; {$endif not CPUNO32BITOPS} @@ -3088,6 +3091,15 @@ implementation result:=left; left:=nil; exit; + end + else if (convtype=tc_int_2_int) and + is_currency(resultdef) then + begin + v:=tordconstnode(left).value; + if not(nf_internal in flags) and not(is_currency(left.resultdef)) then + v:=v*10000; + result:=cordconstnode.create(v,resultdef,false); + exit; end; end;