From 059bf913b5b3c5553a3756b4d9794e2eb3ce4f25 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Thu, 26 Jun 2014 20:40:46 +0530 Subject: [PATCH] Fix Wundef warning for WIDE_CHAR_VERSION fnmatch.c defines WIDE_CHAR_VERSION as 1 for wide chars, but does not define it for the non-wide char bits. Define it and also undef it in fnmatch_loop.c like all other macros. --- ChangeLog | 5 +++++ posix/fnmatch.c | 1 + posix/fnmatch_loop.c | 27 ++++++++++++++------------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 40b5f89..c159faa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2014-06-26 Siddhesh Poyarekar + * posix/fnmatch.c: Define WIDE_CHAR_VERSION. + * posix/fnmatch_loop.c: Undefine WIDE_CHAR_VERSION. + (FCT): Check value of WIDE_CHAR_VERSION instead of checking if + it is defined. + * elf/dl-runtime.c: Check for value of ELF_MACHINE_NO_RELA instead of whether it is defined. * sysdeps/aarch64/dl-machine.h: Define ELF_MACHINE_NO_RELA. diff --git a/posix/fnmatch.c b/posix/fnmatch.c index 4f14a8b..ca95ab4 100644 --- a/posix/fnmatch.c +++ b/posix/fnmatch.c @@ -225,6 +225,7 @@ __wcschrnul (s, c) # define MEMPCPY(D, S, N) __mempcpy (D, S, N) # define MEMCHR(S, C, N) memchr (S, C, N) # define STRCOLL(S1, S2) strcoll (S1, S2) +# define WIDE_CHAR_VERSION 0 # include "fnmatch_loop.c" diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c index 544769b..1957397 100644 --- a/posix/fnmatch_loop.c +++ b/posix/fnmatch_loop.c @@ -504,7 +504,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) { int32_t table_size; const int32_t *symb_table; -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION char str[c1]; unsigned int strcnt; # else @@ -516,7 +516,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) int32_t second; int32_t hash; -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION /* We have to convert the name to a single-byte string. This is possible since the names consist of ASCII characters and the internal @@ -571,7 +571,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) { /* Compare the byte sequence but only if this is not part of a range. */ -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION int32_t *wextra; idx += 1 + extra[idx]; @@ -583,7 +583,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) if (! is_range) { -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION for (c1 = 0; (int32_t) c1 < wextra[idx]; ++c1) @@ -604,7 +604,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) /* Get the collation sequence value. */ is_seqval = 1; -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION cold = wextra[1 + wextra[idx]]; # else /* Adjust for the alignment. */ @@ -667,7 +667,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) uint32_t lcollseq; UCHAR cend = *p++; -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION /* Search in the `names' array for the characters. */ fcollseq = __collseq_table_lookup (collseq, fn); if (fcollseq == ~((uint32_t) 0)) @@ -722,7 +722,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) { int32_t table_size; const int32_t *symb_table; -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION char str[c1]; unsigned int strcnt; # else @@ -734,7 +734,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) int32_t second; int32_t hash; -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION /* We have to convert the name to a single-byte string. This is possible since the names consist of ASCII characters and the internal @@ -789,7 +789,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) { /* Compare the byte sequence but only if this is not part of a range. */ -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION int32_t *wextra; idx += 1 + extra[idx]; @@ -800,7 +800,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) # endif /* Get the collation sequence value. */ is_seqval = 1; -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION cend = wextra[1 + wextra[idx]]; # else /* Adjust for the alignment. */ @@ -832,7 +832,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) characters which are not mentioned in the collation specification. */ if ( -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION lcollseq == 0xffffffff || # endif lcollseq <= fcollseq) @@ -844,7 +844,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) hcollseq = cend; else { -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION hcollseq = __collseq_table_lookup (collseq, cend); if (hcollseq == ~((uint32_t) 0)) @@ -865,7 +865,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) if (lcollseq <= hcollseq && fcollseq <= hcollseq) goto matched; } -# ifdef WIDE_CHAR_VERSION +# if WIDE_CHAR_VERSION range_not_matched: # endif #else @@ -1276,3 +1276,4 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end, #undef STRCAT #undef L #undef BTOWC +#undef WIDE_CHAR_VERSION -- 2.7.4