From: Pádraig Brady Date: Fri, 5 Dec 2014 12:32:49 +0000 (+0000) Subject: filevercmp, posixtm: avoid compiler warnings with -O3 X-Git-Tag: v1.0~7242 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=819cfe3c56733f1de97fd69cf782db968f1f68e7;p=gnulib.git filevercmp, posixtm: avoid compiler warnings with -O3 * lib/filevercmp.h (filevercmp): Tag with _GL_ATTRIBUTE_PURE * lib/posixtm.c: (IF_LINT): Define. (posix_time_parse): Use it to void a "may be used uninitialized" warning, seen only with -O3. --- diff --git a/ChangeLog b/ChangeLog index fb6723b173..1c4a7ab899 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2014-12-05 Pádraig Brady + + filevercmp, posixtm: avoid compiler warnings with -O3 + * lib/filevercmp.h (filevercmp): Tag with _GL_ATTRIBUTE_PURE + * lib/posixtm.c: (IF_LINT): Define. + (posix_time_parse): Use it to void a "may be used uninitialized" + warning, seen only with -O3. + 2014-12-05 Bruno Haible Fix LDBL80_WORDS macro on big endian platforms. diff --git a/lib/filevercmp.h b/lib/filevercmp.h index 72785cd62f..ad359eb004 100644 --- a/lib/filevercmp.h +++ b/lib/filevercmp.h @@ -37,6 +37,6 @@ PREFIX VER2 SUFFIX) < 0. This function is intended to be a replacement for strverscmp. */ -int filevercmp (const char *s1, const char *s2); +int filevercmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE; #endif /* FILEVERCMP_H */ diff --git a/lib/posixtm.c b/lib/posixtm.c index 2fe81ab6a0..30239320ae 100644 --- a/lib/posixtm.c +++ b/lib/posixtm.c @@ -27,6 +27,13 @@ #include #include +/* Use this to suppress gcc's "...may be used uninitialized" warnings. */ +#ifdef lint +# define IF_LINT(Code) Code +#else +# define IF_LINT(Code) /* empty */ +#endif + #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif @@ -118,6 +125,8 @@ posix_time_parse (struct tm *tm, const char *s, unsigned int syntax_bits) if (len != 8 && len != 10 && len != 12) return 1; + IF_LINT(if (len < 8) return 1;) + if (dot) { if (!(syntax_bits & PDS_SECONDS))