aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/cerl
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2017-03-28 15:01:09 +0200
committerGitHub <[email protected]>2017-03-28 15:01:09 +0200
commit1ec9366f468026a216c1c8cd78c7f512bae37ae5 (patch)
tree0803f40e7f6ddb5b98fc368f92650277cd924dc7 /lib/hipe/cerl
parentdeaa890b3da0be617c9f62c968ba829c146fb2d6 (diff)
parentaf3f9ca6fa5b207e7619590723f80002d82a013a (diff)
downloadotp-1ec9366f468026a216c1c8cd78c7f512bae37ae5.tar.gz
otp-1ec9366f468026a216c1c8cd78c7f512bae37ae5.tar.bz2
otp-1ec9366f468026a216c1c8cd78c7f512bae37ae5.zip
Merge PR-1392 from margnus1/hipe-range-fixpoint-bug OTP-14306
HiPE: Fix ERL-278: Fix range analysis miscompilation bug
Diffstat (limited to 'lib/hipe/cerl')
-rw-r--r--lib/hipe/cerl/erl_bif_types.erl5
1 files changed, 1 insertions, 4 deletions
diff --git a/lib/hipe/cerl/erl_bif_types.erl b/lib/hipe/cerl/erl_bif_types.erl
index 8c96e60229..9321750d44 100644
--- a/lib/hipe/cerl/erl_bif_types.erl
+++ b/lib/hipe/cerl/erl_bif_types.erl
@@ -2029,17 +2029,14 @@ arith_rem(Min1, Max1, Min2, Max2) ->
Min1_geq_zero = infinity_geq(Min1, 0),
Max1_leq_zero = infinity_geq(0, Max1),
Max_range2 = infinity_max([infinity_abs(Min2), infinity_abs(Max2)]),
- Max_range2_leq_zero = infinity_geq(0, Max_range2),
- New_min =
+ New_min =
if Min1_geq_zero -> 0;
Max_range2 =:= 0 -> 0;
- Max_range2_leq_zero -> infinity_add(Max_range2, 1);
true -> infinity_add(infinity_inv(Max_range2), 1)
end,
New_max =
if Max1_leq_zero -> 0;
Max_range2 =:= 0 -> 0;
- Max_range2_leq_zero -> infinity_add(infinity_inv(Max_range2), -1);
true -> infinity_add(Max_range2, -1)
end,
{New_min, New_max}.