mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-07 18:48:04 +02:00
* 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:
parent
a8e001d4ad
commit
36e79a874e
@ -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
|
||||||
));
|
));
|
||||||
|
Loading…
Reference in New Issue
Block a user