diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2015-10-21 20:10:40 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2015-10-21 20:11:23 -0700 |
commit | 0bb27cd32e4a6a7fc4485381efc9ff0026e15689 (patch) | |
tree | 4367708145574829e615f3840bbdad923a2343a0 /lib | |
parent | 2ab48bafa3e8c3c686dcadfb5d2410178e9dd269 (diff) |
Merge from gnulib
This incorporates:
2015-10-18 stdalign: work around pre-4.9 GCC x86 bug
2015-10-18 time_rz: avoid warning from bleeding-edge gcc's -Wnonnull
* doc/misc/texinfo.tex, lib/stdalign.in.h, lib/time_rz.c:
Copy from gnulib.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/stdalign.in.h | 5 | ||||
-rw-r--r-- | lib/time_rz.c | 9 |
2 files changed, 7 insertions, 7 deletions
diff --git a/lib/stdalign.in.h b/lib/stdalign.in.h index c6115b6dbe..ce1e793e27 100644 --- a/lib/stdalign.in.h +++ b/lib/stdalign.in.h @@ -52,7 +52,10 @@ #undef _Alignas #undef _Alignof -#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 +/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023 + <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */ +#if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ + || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9))) # ifdef __cplusplus # if 201103 <= __cplusplus # define _Alignof(type) alignof (type) diff --git a/lib/time_rz.c b/lib/time_rz.c index f94893aa2c..a89b7e70f1 100644 --- a/lib/time_rz.c +++ b/lib/time_rz.c @@ -90,8 +90,7 @@ extend_abbrs (char *abbrs, char const *abbr, size_t abbr_size) } /* Return a newly allocated time zone for NAME, or NULL on failure. - As a special case, return a nonzero constant for wall clock time, a - constant that survives freeing. */ + A null NAME stands for wall clock time (which is like unset TZ). */ timezone_t tzalloc (char const *name) { @@ -288,10 +287,8 @@ localtime_rz (timezone_t tz, time_t const *t, struct tm *tm) timezone_t old_tz = set_tz (tz); if (old_tz) { - tm = localtime_r (t, tm); - if (tm && !save_abbr (tz, tm)) - tm = NULL; - if (revert_tz (old_tz)) + bool abbr_saved = localtime_r (t, tm) && save_abbr (tz, tm); + if (revert_tz (old_tz) && abbr_saved) return tm; } return NULL; |