mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-02-14 11:21:58 +02:00
maint: avoid signed overflow warning with -O3
Prompted by the implicit -O3 added by american-fuzzy-lop,
seen with GCC 4.9.2 on x86_64.
src/pr.c: In function 'print_files.part.5':
src/pr.c:1781:6: error: assuming signed overflow does not occur
when simplifying conditional to constant [-Werror=strict-overflow]
if (cols_ready_to_print () == 0)
This happens because cols_ready_to_print() is inlined
thus reducing the comparison to the N variable in print_page().
Now this can't overflow due to the protection when parsing the
specified column, but use an unsigned type to avoid the
apparent signed overflow.
* src/pr.c (cols_ready_to_print): Increment an unsigned type to
avoid the subsequent signed overflow warning.
This commit is contained in:
10
src/pr.c
10
src/pr.c
@@ -768,12 +768,12 @@ static struct option const long_options[] =
|
||||
/* Return the number of columns that have either an open file or
|
||||
stored lines. */
|
||||
|
||||
static int _GL_ATTRIBUTE_PURE
|
||||
static unsigned int _GL_ATTRIBUTE_PURE
|
||||
cols_ready_to_print (void)
|
||||
{
|
||||
COLUMN *q;
|
||||
int i;
|
||||
int n;
|
||||
unsigned int i;
|
||||
unsigned int n;
|
||||
|
||||
n = 0;
|
||||
for (q = column_vector, i = 0; i < columns; ++q, ++i)
|
||||
@@ -1815,7 +1815,7 @@ print_page (void)
|
||||
--p->lines_to_print;
|
||||
if (p->lines_to_print <= 0)
|
||||
{
|
||||
if (cols_ready_to_print () <= 0)
|
||||
if (cols_ready_to_print () == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1849,7 +1849,7 @@ print_page (void)
|
||||
--lines_left_on_page;
|
||||
}
|
||||
|
||||
if (cols_ready_to_print () <= 0 && !extremities)
|
||||
if (cols_ready_to_print () == 0 && !extremities)
|
||||
break;
|
||||
|
||||
if (double_space && pv)
|
||||
|
||||
Reference in New Issue
Block a user