mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Bug 20729: Fix building with -Os.
This commit adds a new DIAG_IGNORE_Os_NEEDS_COMMENT which is only enabled when compiling with -Os. This allows developers working on -Os enabled builds to mark false-positive warnings without impacting the warnings emitted at -O2. Then using the new DIAG_IGNORE_Os_NEEDS_COMMENT we fix 6 warnings generated with GCC 5 to get -Os builds working again.
This commit is contained in:
@ -24,6 +24,7 @@
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <sys/param.h>
|
||||
#include <libc-internal.h>
|
||||
|
||||
#ifndef STRING_TYPE
|
||||
# define STRING_TYPE char
|
||||
@ -170,7 +171,19 @@ get_next_seq (coll_seq *seq, int nrules, const unsigned char *rulesets,
|
||||
}
|
||||
}
|
||||
|
||||
/* With GCC 5.3 when compiling with -Os the compiler complains
|
||||
that idx, taken from seq->idx (seq1 or seq2 from STRCOLL) may
|
||||
be used uninitialized. In general this can't possibly be true
|
||||
since seq1.idx and seq2.idx are initialized to zero in the
|
||||
outer function. Only one case where seq->idx is restored from
|
||||
seq->save_idx might result in an uninitialized idx value, but
|
||||
it is guarded by a sequence of checks against backw_stop which
|
||||
ensures that seq->save_idx was saved to first and contains a
|
||||
valid value. */
|
||||
DIAG_PUSH_NEEDS_COMMENT;
|
||||
DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
|
||||
len = weights[idx++];
|
||||
DIAG_POP_NEEDS_COMMENT;
|
||||
/* Skip over indices of previous levels. */
|
||||
for (int i = 0; i < pass; i++)
|
||||
{
|
||||
|
Reference in New Issue
Block a user