From 49264ad7dd7d6f196c54c5b8750ef98edcbb0683 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 8 Aug 2012 14:05:54 +0000 Subject: [PATCH] * libc/posix/engine.c(dissect): Guard diagnostic pragma for right versions of GCC only. * libc/string/strcasestr.c: Ditto. Fix typo in previous ChangeLog entry. --- newlib/ChangeLog | 10 ++++++++-- newlib/libc/posix/engine.c | 3 +++ newlib/libc/string/strcasestr.c | 3 +++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 4fd84ff2c..2be47231f 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,9 @@ +2012-08-08 Eric Blake + + * libc/posix/engine.c(dissect): Guard diagnostic pragma for right + versions of GCC only. + * libc/string/strcasestr.c: Ditto. + 2012-08-08 Corinna Vinschen Throughout, run newlib with -Wall -Werror option and fix bugs and @@ -17,10 +23,10 @@ * libc/posix/collate.c: Throughout cast to avoid compiler warning. * libc/posix/engine.c (matcher): Initialize dp to avoid compiler warning. - * libc/posix/glob.c: Disable on Cygwin. Explain why. - * libc/posix/regcomp.c: Fix "uninitialized" compiler warnings. (dissect): Deliberately silence gcc compiler warning. Add comment to explain why. + * libc/posix/glob.c: Disable on Cygwin. Explain why. + * libc/posix/regcomp.c: Fix "uninitialized" compiler warnings. * libc/posix/wordexp.c (wordexp): Remove num_bytes variable since result is never used. * libc/posix/popen.c (popen): Ditto for variable last. diff --git a/newlib/libc/posix/engine.c b/newlib/libc/posix/engine.c index 5956e2747..73ce45c11 100644 --- a/newlib/libc/posix/engine.c +++ b/newlib/libc/posix/engine.c @@ -364,9 +364,12 @@ sopno stopst; char *ssp; /* start of string matched by subsubRE */ char *sep; /* end of string matched by subsubRE */ char *oldssp; /* previous ssp */ +#if defined (__GNUC__) && \ + ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4) /* dp is only used for assertion testing which, for some reason, is not recognized as usage. */ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif char *dp; AT("diss", start, stop, startst, stopst); diff --git a/newlib/libc/string/strcasestr.c b/newlib/libc/string/strcasestr.c index 8ff91fdd8..91783164c 100644 --- a/newlib/libc/string/strcasestr.c +++ b/newlib/libc/string/strcasestr.c @@ -84,8 +84,11 @@ QUICKREF (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l)) \ && ((h_l) = (j) + (n_l))) # define CANON_ELEMENT(c) tolower (c) +#if defined (__GNUC__) && \ + ((__GNUC__ == 4 && __GNUC_MINOR__ >= 2) || __GNUC__ > 4) /* strncasecmp uses signed char, CMP_FUNC is expected to use unsigned char. */ #pragma GCC diagnostic ignored "-Wpointer-sign" +#endif # define CMP_FUNC strncasecmp # include "str-two-way.h" #endif