Format INT32_MIN as '-2147483648', not '--2147483648'

This commit is contained in:
Rangi
2021-02-17 09:41:36 -05:00
parent 748e7dd4c7
commit 7dd34f1572
4 changed files with 13 additions and 3 deletions

View File

@@ -182,10 +182,9 @@ void fmt_PrintNumber(char *buf, size_t bufLen, struct FormatSpec const *fmt, uin
if (fmt->type == 'd' || fmt->type == 'f') { if (fmt->type == 'd' || fmt->type == 'f') {
int32_t v = value; int32_t v = value;
if (v < 0) { if (v < 0 && v != INT32_MIN) {
sign = '-'; sign = '-';
if (v != INT32_MIN) value = -v;
value = -v;
} }
} }

8
test/asm/minimum-int.asm Normal file
View File

@@ -0,0 +1,8 @@
m = $8000_0000
assert m == 1 << 31
assert m == -(1 << 31)
assert m == (-2)**31
println "{m}"
println "({12d:m})"
println "({-12d:m})"

0
test/asm/minimum-int.err Normal file
View File

3
test/asm/minimum-int.out Normal file
View File

@@ -0,0 +1,3 @@
$80000000
( -2147483648)
(-2147483648 )