Tests: Ubuntu 13.10 compilation .../configure --prefix=/usr --enable-mm-debug --enable-cache-stats EFI_ARCH=x86_64 --with-platform=efi --enable-boot-time CFLAGS="-Wall -Wextra -Werror" && make Signed-off-by: Doron Tsur <dor...@mellanox.com> --- grub-core/Makefile.core.def | 2 +- grub-core/gnulib/Makefile.am | 2 +- grub-core/gnulib/argp-fmtstream.c | 2 +- grub-core/gnulib/argp-help.c | 2 +- grub-core/gnulib/getopt_int.h | 2 +- grub-core/gnulib/regcomp.c | 33 +++++++++++++++++++-------------- grub-core/gnulib/regex_internal.c | 8 +++++--- grub-core/gnulib/regex_internal.h | 13 +++++++++---- grub-core/gnulib/regexec.c | 20 ++++++++++---------- 9 files changed, 48 insertions(+), 36 deletions(-)
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def index 57abb49..85a1110 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -2220,7 +2220,7 @@ module = { common = lib/libgcrypt-grub/mpi/mpi-inline.c; common = lib/libgcrypt_wrap/mem.c; - cflags = '$(CFLAGS_GCRY) -Wno-redundant-decls -Wno-sign-compare'; + cflags = '$(CFLAGS_GCRY) -Wno-redundant-decls -Wno-sign-compare -Wno-unused-but-set-variable'; cppflags = '$(CPPFLAGS_GCRY)'; }; diff --git a/grub-core/gnulib/Makefile.am b/grub-core/gnulib/Makefile.am index 3444397..22e67e6 100644 --- a/grub-core/gnulib/Makefile.am +++ b/grub-core/gnulib/Makefile.am @@ -39,7 +39,7 @@ DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = -AM_CFLAGS = +AM_CFLAGS = -Wno-type-limits noinst_LIBRARIES += libgnu.a diff --git a/grub-core/gnulib/argp-fmtstream.c b/grub-core/gnulib/argp-fmtstream.c index 19fab18..9f4f632 100644 --- a/grub-core/gnulib/argp-fmtstream.c +++ b/grub-core/gnulib/argp-fmtstream.c @@ -120,7 +120,7 @@ weak_alias (__argp_fmtstream_free, argp_fmtstream_free) /* Return the pointer to the first character that doesn't fit in l columns. */ -static inline const ptrdiff_t +static inline ptrdiff_t add_width (const char *ptr, const char *end, size_t l) { mbstate_t ps; diff --git a/grub-core/gnulib/argp-help.c b/grub-core/gnulib/argp-help.c index e01d40c..54d0664 100644 --- a/grub-core/gnulib/argp-help.c +++ b/grub-core/gnulib/argp-help.c @@ -466,7 +466,7 @@ make_hol (const struct argp *argp, struct hol_cluster *cluster) assert (hol->entries && hol->short_options); if (SIZE_MAX <= UINT_MAX) - assert (hol->num_entries <= SIZE_MAX / sizeof (struct hol_entry)); + assert (hol->num_entries <= (SIZE_MAX / sizeof (struct hol_entry)) ); /* Fill in the entries. */ so = hol->short_options; diff --git a/grub-core/gnulib/getopt_int.h b/grub-core/gnulib/getopt_int.h index a6e4b9e..51afb60 100644 --- a/grub-core/gnulib/getopt_int.h +++ b/grub-core/gnulib/getopt_int.h @@ -113,7 +113,7 @@ struct _getopt_data /* The initializer is necessary to set OPTIND and OPTERR to their default values and to clear the initialization flag. */ -#define _GETOPT_DATA_INITIALIZER { 1, 1 } +#define _GETOPT_DATA_INITIALIZER { .optind = 1, .opterr = 1 } extern int _getopt_internal_r (int ___argc, char **___argv, const char *__shortopts, diff --git a/grub-core/gnulib/regcomp.c b/grub-core/gnulib/regcomp.c index 596e0cf..c1972b6 100644 --- a/grub-core/gnulib/regcomp.c +++ b/grub-core/gnulib/regcomp.c @@ -334,7 +334,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, *p++ = dfa->nodes[node].opr.c; memset (&state, '\0', sizeof (state)); if (__mbrtowc (&wc, (const char *) buf, p - buf, - &state) == p - buf + &state) == ((size_t)(p - buf)) && (__wcrtomb ((char *) buf, towlower (wc), &state) != (size_t) -1)) re_set_fastmap (fastmap, false, buf[0]); @@ -540,7 +540,7 @@ regerror (errcode, preg, errbuf, errbuf_size) size_t errbuf_size; #else /* size_t might promote */ size_t -regerror (int errcode, const regex_t *_Restrict_ preg, +regerror (int errcode, const regex_t *_Restrict_ preg __attribute__((unused)), char *_Restrict_ errbuf, size_t errbuf_size) #endif { @@ -928,7 +928,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) if (wch != WEOF) dfa->sb_char[i] |= (bitset_word_t) 1 << j; # ifndef _LIBC - if (isascii (ch) && wch != ch) + if (isascii (ch) && ((int)wch) != ch) dfa->map_notascii = 1; # endif } @@ -1418,7 +1418,7 @@ calc_first (void *extra, bin_tree_t *node) /* Pass 2: compute NEXT on the tree. Preorder visit. */ static reg_errcode_t -calc_next (void *extra, bin_tree_t *node) +calc_next (void *extra __attribute__((unused)), bin_tree_t *node) { switch (node->token.type) { @@ -2716,9 +2716,9 @@ build_range_exp (const reg_syntax_t syntax, : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] : 0)); start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM) - ? __btowc (start_ch) : start_elem->opr.wch); + ? __btowc (start_ch) : (wint_t)(start_elem->opr.wch)); end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM) - ? __btowc (end_ch) : end_elem->opr.wch); + ? __btowc (end_ch) : (wint_t)(end_elem->opr.wch)); if (start_wc == WEOF || end_wc == WEOF) return REG_ECOLLATE; else if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc, 0)) @@ -2762,7 +2762,7 @@ build_range_exp (const reg_syntax_t syntax, /* Build the table for single byte characters. */ for (wc = 0; wc < SBC_MAX; ++wc) { - if (start_wc <= wc && wc <= end_wc) + if (start_wc <= ((wint_t)wc) && ((wint_t)wc) <= end_wc) bitset_set (sbcset, wc); } } @@ -2797,8 +2797,8 @@ build_range_exp (const reg_syntax_t syntax, static reg_errcode_t internal_function # ifdef RE_ENABLE_I18N -build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, - Idx *coll_sym_alloc, const unsigned char *name) +build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset __attribute__((unused)), + Idx *coll_sym_alloc __attribute__((unused)), const unsigned char *name) # else /* not RE_ENABLE_I18N */ build_collating_symbol (bitset_t sbcset, const unsigned char *name) # endif /* not RE_ENABLE_I18N */ @@ -3366,7 +3366,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, - re_token_t *token, int token_len, re_dfa_t *dfa, + re_token_t *token, int token_len, re_dfa_t *dfa __attribute__((unused)), reg_syntax_t syntax, bool accept_hyphen) { #ifdef RE_ENABLE_I18N @@ -3451,10 +3451,15 @@ parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, EQUIV_CLASS_ALLOC is the allocated size of mbcset->equiv_classes, is a pointer argument since we may update it. */ +#ifdef _LIBC +#define build_equiv_class_ATTRIBUTE_UNUSED +#else +#define build_equiv_class_ATTRIBUTE_UNUSED __attribute__((unused)) +#endif static reg_errcode_t #ifdef RE_ENABLE_I18N -build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, - Idx *equiv_class_alloc, const unsigned char *name) +build_equiv_class (bitset_t sbcset, re_charset_t *mbcset build_equiv_class_ATTRIBUTE_UNUSED, + Idx *equiv_class_alloc build_equiv_class_ATTRIBUTE_UNUSED, const unsigned char *name) #else /* not RE_ENABLE_I18N */ build_equiv_class (bitset_t sbcset, const unsigned char *name) #endif /* not RE_ENABLE_I18N */ @@ -3760,7 +3765,7 @@ fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax) || num == REG_ERROR) ? REG_ERROR : num == REG_MISSING - ? c - '0' + ? (Idx)(c - '0') : MIN (RE_DUP_MAX + 1, num * 10 + c - '0')); } return num; @@ -3860,7 +3865,7 @@ free_token (re_token_t *node) and its children. */ static reg_errcode_t -free_tree (void *extra, bin_tree_t *node) +free_tree (void *extra __attribute__((unused)), bin_tree_t *node) { free_token (&node->token); return REG_NOERROR; diff --git a/grub-core/gnulib/regex_internal.c b/grub-core/gnulib/regex_internal.c index 899b0ae..2b03dfd 100644 --- a/grub-core/gnulib/regex_internal.c +++ b/grub-core/gnulib/regex_internal.c @@ -224,7 +224,8 @@ build_wcs_buffer (re_string_t *pstr) /* Apply the translation if we need. */ if (BE (pstr->trans != NULL, 0)) { - int i, ch; + int ch; + Idx i; for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) { @@ -367,7 +368,8 @@ build_wcs_upper_buffer (re_string_t *pstr) prev_st = pstr->cur_state; if (BE (pstr->trans != NULL, 0)) { - int i, ch; + int ch; + Idx i; for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) { @@ -751,7 +753,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) memset (&cur_state, 0, sizeof (cur_state)); mbclen = __mbrtowc (&wc2, (const char *) pp, mlen, &cur_state); - if (raw + offset - p <= mbclen + if ( ( ((size_t)(raw + offset - p)) <= mbclen) && mbclen < (size_t) -2) { memset (&pstr->cur_state, '\0', diff --git a/grub-core/gnulib/regex_internal.h b/grub-core/gnulib/regex_internal.h index c467b29..121f56c 100644 --- a/grub-core/gnulib/regex_internal.h +++ b/grub-core/gnulib/regex_internal.h @@ -399,7 +399,7 @@ struct re_string_t unsigned char offsets_needed; unsigned char newline_anchor; unsigned char word_ops_used; - int mb_cur_max; + Idx mb_cur_max; }; typedef struct re_string_t re_string_t; @@ -624,7 +624,7 @@ typedef struct Idx nbkref_ents; Idx abkref_ents; struct re_backref_cache_entry *bkref_ents; - int max_mb_elem_len; + Idx max_mb_elem_len; Idx nsub_tops; Idx asub_tops; re_sub_match_top_t **sub_tops; @@ -691,7 +691,7 @@ struct re_dfa_t unsigned int is_utf8 : 1; unsigned int map_notascii : 1; unsigned int word_ops_used : 1; - int mb_cur_max; + Idx mb_cur_max; bitset_t word_char; reg_syntax_t syntax; Idx *subexp_map; @@ -825,9 +825,14 @@ re_string_wchar_at (const re_string_t *pstr, Idx idx) } # ifndef NOT_IN_libc +# ifdef _LIBC +#define re_string_elem_size_at_ATTRIBUTE_UNUSED +#else +#define re_string_elem_size_at_ATTRIBUTE_UNUSED __attribute__((unused)) +#endif static int internal_function __attribute__ ((pure, unused)) -re_string_elem_size_at (const re_string_t *pstr, Idx idx) +re_string_elem_size_at (const re_string_t *pstr re_string_elem_size_at_ATTRIBUTE_UNUSED, Idx idx re_string_elem_size_at_ATTRIBUTE_UNUSED) { # ifdef _LIBC const unsigned char *p, *extra; diff --git a/grub-core/gnulib/regexec.c b/grub-core/gnulib/regexec.c index f632cd4..6d997c5 100644 --- a/grub-core/gnulib/regexec.c +++ b/grub-core/gnulib/regexec.c @@ -490,7 +490,7 @@ re_search_stub (struct re_pattern_buffer *bufp, { if (ret_len) { - assert (pmatch[0].rm_so == start); + assert (((Idx)(pmatch[0].rm_so)) == start); rval = pmatch[0].rm_eo - start; } else @@ -928,11 +928,11 @@ re_search_internal (const regex_t *preg, if (BE (mctx.input.offsets_needed != 0, 0)) { pmatch[reg_idx].rm_so = - (pmatch[reg_idx].rm_so == mctx.input.valid_len + (((Idx)(pmatch[reg_idx].rm_so)) == mctx.input.valid_len ? mctx.input.valid_raw_len : mctx.input.offsets[pmatch[reg_idx].rm_so]); pmatch[reg_idx].rm_eo = - (pmatch[reg_idx].rm_eo == mctx.input.valid_len + (((Idx)(pmatch[reg_idx].rm_eo)) == mctx.input.valid_len ? mctx.input.valid_raw_len : mctx.input.offsets[pmatch[reg_idx].rm_eo]); } @@ -1472,11 +1472,11 @@ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, } memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); - for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;) + for (idx = (Idx)(pmatch[0].rm_so); idx <= (Idx)(pmatch[0].rm_eo) ;) { update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch); - if (idx == pmatch[0].rm_eo && cur_node == mctx->last_node) + if (idx == (Idx)(pmatch[0].rm_eo) && cur_node == mctx->last_node) { Idx reg_idx; if (fs) @@ -1575,7 +1575,7 @@ update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, if (reg_num < nmatch) { /* We are at the last node of this sub expression. */ - if (pmatch[reg_num].rm_so < cur_idx) + if (((Idx)(pmatch[reg_num].rm_so)) < cur_idx) { pmatch[reg_num].rm_eo = cur_idx; /* This is a non-empty match or we are not inside an optional @@ -1629,7 +1629,7 @@ internal_function sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) { reg_errcode_t err; - int null_cnt = 0; + Idx null_cnt = 0; Idx str_idx = sctx->last_str_idx; re_node_set cur_dest; @@ -2568,7 +2568,7 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) /* The node can accepts 'naccepted' bytes. */ dest_idx = re_string_cur_idx (&mctx->input) + naccepted; - mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted + mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < (Idx)naccepted) ? (Idx)naccepted : mctx->max_mb_elem_len); err = clean_state_log_if_needed (mctx, dest_idx); if (BE (err != REG_NOERROR, 0)) @@ -3831,7 +3831,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, if (str_idx + char_len > input->len) return 0; - for (i = 1; i < char_len; ++i) + for (i = 1; i < ((Idx)char_len); ++i) { d = re_string_byte_at (input, str_idx + i); if (d < 0x80 || d > 0xbf) @@ -4140,7 +4140,7 @@ extend_buffers (re_match_context_t *mctx, int min_len) /* Double the lengths of the buffers, but allocate at least MIN_LEN. */ ret = re_string_realloc_buffers (pstr, - MAX (min_len, + MAX ((Idx)min_len, MIN (pstr->len, pstr->bufs_len * 2))); if (BE (ret != REG_NOERROR, 0)) return ret; -- 1.7.8.2 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel