summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/posixtm.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/lib/posixtm.c b/lib/posixtm.c
index 5273a71f4..397f63f46 100644
--- a/lib/posixtm.c
+++ b/lib/posixtm.c
@@ -43,6 +43,13 @@
# include "unlocked-io.h"
#endif
+/* Use this to suppress gcc's `...may be used before initialized' warnings. */
+#ifdef lint
+# define IF_LINT(Code) Code
+#else
+# define IF_LINT(Code) /* empty */
+#endif
+
/* ISDIGIT differs from isdigit, as follows:
- Its arg may be any int or unsigned int; it need not be an unsigned char.
- It's guaranteed to evaluate its argument exactly once.
@@ -193,18 +200,18 @@ posix_time_parse (struct tm *tm, const char *s, unsigned int syntax_bits)
bool
posixtime (time_t *p, const char *s, unsigned int syntax_bits)
{
- struct tm tm0;
- struct tm tm1;
- struct tm const *tm;
- time_t t;
-
+ struct tm tm0
#ifdef lint
/* Placate gcc-4's -Wuninitialized.
- posix_time_parse fails to set tm0.tm_year only when it returns
+ posix_time_parse fails to set all of tm0 only when it returns
nonzero (due to year() returning nonzero), and in that case,
this code doesn't use the tm0 at all. */
- tm0.tm_year = 0;
+ = { 0, }
#endif
+ ;
+ struct tm tm1;
+ struct tm const *tm;
+ time_t t;
if (posix_time_parse (&tm0, s, syntax_bits))
return false;