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