* when creating code for an iso mod operator, use create_internal for the helper nodes

to avoid unnecessary warnings

git-svn-id: trunk@30270 -
This commit is contained in:
florian 2015-03-21 22:57:19 +00:00
parent a8e001d4ad
commit 36e79a874e

View File

@ -361,7 +361,7 @@ implementation
result_data:=ctempcreatenode.create(resultdef,resultdef.size,tt_persistent,true); result_data:=ctempcreatenode.create(resultdef,resultdef.size,tt_persistent,true);
{ right <=0? } { right <=0? }
addstatement(statements,cifnode.create(caddnode.create(lten,right.getcopy,cordconstnode.create(0,resultdef,false)), addstatement(statements,cifnode.create_internal(caddnode.create_internal(lten,right.getcopy,cordconstnode.create(0,resultdef,false)),
{ then: result:=left mod right } { then: result:=left mod right }
ccallnode.createintern('fpc_divbyzero',nil), ccallnode.createintern('fpc_divbyzero',nil),
nil nil
@ -371,17 +371,17 @@ implementation
{ result:=(-left) mod right } { result:=(-left) mod right }
addstatement(else_statements,cassignmentnode.create(ctemprefnode.create(result_data),cmoddivnode.create(modn,cunaryminusnode.create(left.getcopy),right.getcopy))); addstatement(else_statements,cassignmentnode.create(ctemprefnode.create(result_data),cmoddivnode.create(modn,cunaryminusnode.create(left.getcopy),right.getcopy)));
{ result<>0? } { result<>0? }
addstatement(else_statements,cifnode.create(caddnode.create(unequaln,ctemprefnode.create(result_data),cordconstnode.create(0,resultdef,false)), addstatement(else_statements,cifnode.create_internal(caddnode.create_internal(unequaln,ctemprefnode.create(result_data),cordconstnode.create(0,resultdef,false)),
{ then: result:=right-result } { then: result:=right-result }
cassignmentnode.create(ctemprefnode.create(result_data),caddnode.create(subn,right.getcopy,ctemprefnode.create(result_data))), cassignmentnode.create_internal(ctemprefnode.create(result_data),caddnode.create_internal(subn,right.getcopy,ctemprefnode.create(result_data))),
nil nil
)); ));
addstatement(statements,result_data); addstatement(statements,result_data);
{ if left>=0 } { if left>=0 }
addstatement(statements,cifnode.create(caddnode.create(gten,left.getcopy,cordconstnode.create(0,resultdef,false)), addstatement(statements,cifnode.create_internal(caddnode.create_internal(gten,left.getcopy,cordconstnode.create(0,resultdef,false)),
{ then: result:=left mod right } { then: result:=left mod right }
cassignmentnode.create(ctemprefnode.create(result_data),cmoddivnode.create(modn,left.getcopy,right.getcopy)), cassignmentnode.create_internal(ctemprefnode.create(result_data),cmoddivnode.create(modn,left.getcopy,right.getcopy)),
{ else block } { else block }
else_block else_block
)); ));