aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_init.c
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2014-08-14 09:44:29 +0200
committerLukas Larsson <[email protected]>2014-08-14 09:44:29 +0200
commit9de7cc7f881b5df18d0a26f7d37af164bc0c390e (patch)
treeb72c97468a188307915f707f0d2133f719719f0d /erts/emulator/beam/erl_init.c
parent8fe6c462ec8e20ab2ad14b0c1addf1030ada0e54 (diff)
parent9d3c22934491afe85fbcf8543ae43fb2eb1ab387 (diff)
downloadotp-9de7cc7f881b5df18d0a26f7d37af164bc0c390e.tar.gz
otp-9de7cc7f881b5df18d0a26f7d37af164bc0c390e.tar.bz2
otp-9de7cc7f881b5df18d0a26f7d37af164bc0c390e.zip
Merge branch 'lukas/erts/fix_neg_of_int64_min/OTP-12097' into maint
* lukas/erts/fix_neg_of_int64_min/OTP-12097: erts: Fix neg int overflow when sint is min size
Diffstat (limited to 'erts/emulator/beam/erl_init.c')
-rw-r--r--erts/emulator/beam/erl_init.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c
index 5e6d812242..88c4006934 100644
--- a/erts/emulator/beam/erl_init.c
+++ b/erts/emulator/beam/erl_init.c
@@ -2066,8 +2066,10 @@ erl_exit_vv(int n, int flush_async, char *fmt, va_list args1, va_list args2)
system_cleanup(flush_async);
save_statistics();
-
- an = abs(n);
+ if (n < 0)
+ an = -(unsigned int)n;
+ else
+ an = n;
if (erts_mtrace_enabled)
erts_mtrace_exit((Uint32) an);