From aaa50db3bd0d1f783f6f2db5da26e3e8fbae12f3 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Fri, 5 Jun 2015 14:33:09 -0700 Subject: Make INT32_MIN%-1 trap. It doesn't actually overflow, but the corresponding division overflows, so even though we could define it to be correct, it isn't especially useful. Also, this operation is UB in C and LLVM. --- Polyfill.md | 1 + 1 file changed, 1 insertion(+) (limited to 'Polyfill.md') diff --git a/Polyfill.md b/Polyfill.md index 5a8ec93..ce215f8 100644 --- a/Polyfill.md +++ b/Polyfill.md @@ -65,6 +65,7 @@ Some divergences that we've identified as potentially desirable: standard behavior: - Division by zero returns zero; - `INT32_MIN / -1` returns `INT32_MIN`; + - `INT32_MIN % -1` returns `0`; - Shift counts are implicitly masked. * **[Datatype conversions](AstSemantics.md#datatype-conversions-truncations-reinterpretations-promotions-and-demotions)**: Regardless of WebAssembly behavior, an asm.js polyfill will follow its -- cgit v1.2.3