mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-04 14:27:11 +01:00
* check for *-1 multiplications after folding, resolves #40448
This commit is contained in:
parent
399f693ebb
commit
6e5860cb87
@ -846,9 +846,6 @@ implementation
|
||||
}
|
||||
result := ctypeconvnode.create_internal(PruneKeepLeft(),resultdef)
|
||||
|
||||
else if (tordconstnode(right).value = -1) and (nodetype=muln) then
|
||||
result := ctypeconvnode.create_internal(cunaryminusnode.create(PruneKeepLeft()),ld)
|
||||
|
||||
{ try to fold
|
||||
op op
|
||||
/ \ / \
|
||||
@ -888,6 +885,15 @@ implementation
|
||||
end;
|
||||
end
|
||||
end;
|
||||
|
||||
if assigned(result) then
|
||||
exit;
|
||||
|
||||
{ multiplication by -1? Convert it into an unary minus if the other conversions before failed, don't do
|
||||
it before the folding above, see #40448 }
|
||||
if (tordconstnode(right).value = -1) and (nodetype=muln) then
|
||||
result := ctypeconvnode.create_internal(cunaryminusnode.create(PruneKeepLeft()),ld);
|
||||
|
||||
if assigned(result) then
|
||||
exit;
|
||||
end;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user