diff options
Diffstat (limited to 'stdio-common')
-rw-r--r-- | stdio-common/printf_fp.c | 12 | ||||
-rw-r--r-- | stdio-common/vfprintf.c | 6 |
2 files changed, 15 insertions, 3 deletions
diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c index 34fe918237..d1004356b4 100644 --- a/stdio-common/printf_fp.c +++ b/stdio-common/printf_fp.c @@ -982,7 +982,11 @@ __guess_grouping (unsigned int intdig_max, const char *grouping, ++groups; intdig_max -= *grouping++; - if (*grouping == CHAR_MAX || *grouping < 0) + if (*grouping == CHAR_MAX +#if CHAR_MIN < 0 + || *grouping < 0 +#endif + ) /* No more grouping should be done. */ break; else if (*grouping == 0) @@ -1023,7 +1027,11 @@ group_number (char *buf, char *bufend, unsigned int intdig_no, while (--len > 0); *p-- = thousands_sep; - if (*grouping == CHAR_MAX || *grouping < 0) + if (*grouping == CHAR_MAX +#if CHAR_MIN < 0 + || *grouping < 0 +#endif + ) /* No more grouping should be done. */ break; else if (*grouping == 0) diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c index db6f3e4842..1cd8d2178a 100644 --- a/stdio-common/vfprintf.c +++ b/stdio-common/vfprintf.c @@ -1514,7 +1514,11 @@ group_number (CHAR_T *w, CHAR_T *rear_ptr, const CHAR_T *grouping, if (*grouping == '\0') /* The previous grouping repeats ad infinitum. */ --grouping; - else if (*grouping == CHAR_MAX || *grouping < 0) + else if (*grouping == CHAR_MAX +#if CHAR_MIN < 0 + || *grouping < 0 +#endif + ) { /* No further grouping to be done. Copy the rest of the number. */ |