compiler: the most negative int is emitted as itself - itoa took its digits off -v, which overflows back to itself, so 0x80000000 in an int was written as a bare "-" (invalid IR); digits now come off v as it is, and the buffer holds a long's 20
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
3d5aaa6f6e
commit
37338cb0f7
3 changed files with 27 additions and 4 deletions
6
changes/int-min-literal.md
Normal file
6
changes/int-min-literal.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
bump: patch
|
||||
type: fix
|
||||
**The most negative int is emitted as itself.** The compiler's `itoa` negated a negative value before
|
||||
taking its digits, and `-(-2147483648)` overflows back to itself, so a literal such as `0x80000000` in an
|
||||
int (`b & 0x80000000`) was written into the IR as a bare `-` and the build failed in LLVM. The digits are
|
||||
now taken off the value as it is. Needs a reseed to reach `bin/ludicc`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue