diff options
| author | 2026-10-14 17:09:14 +0330 | |
|---|---|---|
| committer | 2026-10-14 17:09:14 +0330 | |
| commit | f1eba8ef04e8902d7b797d9421d3e0c6f0045ae0 (patch) | |
| tree | 159dd6fc86dbb3dfc0381f109681751085011c77 /src/runtime/rt.zc | |
| parent | merge work/xref: zc0 u*d redo and follow-ups (diff) | |
| parent | Merge branch 'main' into work/spec (diff) | |
merge work/spec: appendix b round, zc0umd rewrite
Diffstat (limited to 'src/runtime/rt.zc')
| -rw-r--r-- | src/runtime/rt.zc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/runtime/rt.zc b/src/runtime/rt.zc index f1414e4..44f3570 100644 --- a/src/runtime/rt.zc +++ b/src/runtime/rt.zc @@ -377,6 +377,7 @@ int zudiv(int n, int dv) { int zdiv(int a, int b) { word s = 0; int q; if (b == 0) { zrem = a; return 0; } + if (b == 0 - 1) { zrem = 0; return 0 - a; } // INT_MIN / -1 is INT_MIN and its remainder 0 (spec 3.4.3); zudiv can't take 2^63 if (a < 0) { a = 0 - a; s = 1; } if (b < 0) { b = 0 - b; s = s ^ 1; } q = zudiv(a, b); |
