GDBserver
time.h
Go to the documentation of this file.
1 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
2 /* A more-standard <time.h>.
3 
4  Copyright (C) 2007-2012 Free Software Foundation, Inc.
5 
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 3, or (at your option)
9  any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program; if not, see <http://www.gnu.org/licenses/>. */
18 
19 #if __GNUC__ >= 3
20 #pragma GCC system_header
21 #endif
22 
23 
24 /* Don't get in the way of glibc when it includes time.h merely to
25  declare a few standard symbols, rather than to declare all the
26  symbols. Also, Solaris 8 <time.h> eventually includes itself
27  recursively; if that is happening, just include the system <time.h>
28  without adding our own declarations. */
29 #if (defined __need_time_t || defined __need_clock_t \
30  || defined __need_timespec \
31  || defined _GL_TIME_H)
32 
33 # include_next <time.h>
34 
35 #else
36 
37 # define _GL_TIME_H
38 
39 # include_next <time.h>
40 
41 /* NetBSD 5.0 mis-defines NULL. */
42 # include <stddef.h>
43 
44 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
45 #ifndef _GL_CXXDEFS_H
46 #define _GL_CXXDEFS_H
47 
48 /* The three most frequent use cases of these macros are:
49 
50  * For providing a substitute for a function that is missing on some
51  platforms, but is declared and works fine on the platforms on which
52  it exists:
53 
54  #if @GNULIB_FOO@
55  # if !@HAVE_FOO@
56  _GL_FUNCDECL_SYS (foo, ...);
57  # endif
58  _GL_CXXALIAS_SYS (foo, ...);
59  _GL_CXXALIASWARN (foo);
60  #elif defined GNULIB_POSIXCHECK
61  ...
62  #endif
63 
64  * For providing a replacement for a function that exists on all platforms,
65  but is broken/insufficient and needs to be replaced on some platforms:
66 
67  #if @GNULIB_FOO@
68  # if @REPLACE_FOO@
69  # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
70  # undef foo
71  # define foo rpl_foo
72  # endif
73  _GL_FUNCDECL_RPL (foo, ...);
74  _GL_CXXALIAS_RPL (foo, ...);
75  # else
76  _GL_CXXALIAS_SYS (foo, ...);
77  # endif
78  _GL_CXXALIASWARN (foo);
79  #elif defined GNULIB_POSIXCHECK
80  ...
81  #endif
82 
83  * For providing a replacement for a function that exists on some platforms
84  but is broken/insufficient and needs to be replaced on some of them and
85  is additionally either missing or undeclared on some other platforms:
86 
87  #if @GNULIB_FOO@
88  # if @REPLACE_FOO@
89  # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
90  # undef foo
91  # define foo rpl_foo
92  # endif
93  _GL_FUNCDECL_RPL (foo, ...);
94  _GL_CXXALIAS_RPL (foo, ...);
95  # else
96  # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@
97  _GL_FUNCDECL_SYS (foo, ...);
98  # endif
99  _GL_CXXALIAS_SYS (foo, ...);
100  # endif
101  _GL_CXXALIASWARN (foo);
102  #elif defined GNULIB_POSIXCHECK
103  ...
104  #endif
105 */
106 
107 /* _GL_EXTERN_C declaration;
108  performs the declaration with C linkage. */
109 #if defined __cplusplus
110 # define _GL_EXTERN_C extern "C"
111 #else
112 # define _GL_EXTERN_C extern
113 #endif
114 
115 /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
116  declares a replacement function, named rpl_func, with the given prototype,
117  consisting of return type, parameters, and attributes.
118  Example:
119  _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
120  _GL_ARG_NONNULL ((1)));
121  */
122 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
123  _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
124 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
125  _GL_EXTERN_C rettype rpl_func parameters_and_attributes
126 
127 /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
128  declares the system function, named func, with the given prototype,
129  consisting of return type, parameters, and attributes.
130  Example:
131  _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
132  _GL_ARG_NONNULL ((1)));
133  */
134 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
135  _GL_EXTERN_C rettype func parameters_and_attributes
136 
137 /* _GL_CXXALIAS_RPL (func, rettype, parameters);
138  declares a C++ alias called GNULIB_NAMESPACE::func
139  that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
140  Example:
141  _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
142  */
143 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \
144  _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
145 #if defined __cplusplus && defined GNULIB_NAMESPACE
146 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
147  namespace GNULIB_NAMESPACE \
148  { \
149  rettype (*const func) parameters = ::rpl_func; \
150  } \
151  _GL_EXTERN_C int _gl_cxxalias_dummy
152 #else
153 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
154  _GL_EXTERN_C int _gl_cxxalias_dummy
155 #endif
156 
157 /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
158  is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
159  except that the C function rpl_func may have a slightly different
160  declaration. A cast is used to silence the "invalid conversion" error
161  that would otherwise occur. */
162 #if defined __cplusplus && defined GNULIB_NAMESPACE
163 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
164  namespace GNULIB_NAMESPACE \
165  { \
166  rettype (*const func) parameters = \
167  reinterpret_cast<rettype(*)parameters>(::rpl_func); \
168  } \
169  _GL_EXTERN_C int _gl_cxxalias_dummy
170 #else
171 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
172  _GL_EXTERN_C int _gl_cxxalias_dummy
173 #endif
174 
175 /* _GL_CXXALIAS_SYS (func, rettype, parameters);
176  declares a C++ alias called GNULIB_NAMESPACE::func
177  that redirects to the system provided function func, if GNULIB_NAMESPACE
178  is defined.
179  Example:
180  _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
181  */
182 #if defined __cplusplus && defined GNULIB_NAMESPACE
183  /* If we were to write
184  rettype (*const func) parameters = ::func;
185  like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
186  better (remove an indirection through a 'static' pointer variable),
187  but then the _GL_CXXALIASWARN macro below would cause a warning not only
188  for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */
189 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
190  namespace GNULIB_NAMESPACE \
191  { \
192  static rettype (*func) parameters = ::func; \
193  } \
194  _GL_EXTERN_C int _gl_cxxalias_dummy
195 #else
196 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
197  _GL_EXTERN_C int _gl_cxxalias_dummy
198 #endif
199 
200 /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
201  is like _GL_CXXALIAS_SYS (func, rettype, parameters);
202  except that the C function func may have a slightly different declaration.
203  A cast is used to silence the "invalid conversion" error that would
204  otherwise occur. */
205 #if defined __cplusplus && defined GNULIB_NAMESPACE
206 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
207  namespace GNULIB_NAMESPACE \
208  { \
209  static rettype (*func) parameters = \
210  reinterpret_cast<rettype(*)parameters>(::func); \
211  } \
212  _GL_EXTERN_C int _gl_cxxalias_dummy
213 #else
214 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
215  _GL_EXTERN_C int _gl_cxxalias_dummy
216 #endif
217 
218 /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
219  is like _GL_CXXALIAS_SYS (func, rettype, parameters);
220  except that the C function is picked among a set of overloaded functions,
221  namely the one with rettype2 and parameters2. Two consecutive casts
222  are used to silence the "cannot find a match" and "invalid conversion"
223  errors that would otherwise occur. */
224 #if defined __cplusplus && defined GNULIB_NAMESPACE
225  /* The outer cast must be a reinterpret_cast.
226  The inner cast: When the function is defined as a set of overloaded
227  functions, it works as a static_cast<>, choosing the designated variant.
228  When the function is defined as a single variant, it works as a
229  reinterpret_cast<>. The parenthesized cast syntax works both ways. */
230 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
231  namespace GNULIB_NAMESPACE \
232  { \
233  static rettype (*func) parameters = \
234  reinterpret_cast<rettype(*)parameters>( \
235  (rettype2(*)parameters2)(::func)); \
236  } \
237  _GL_EXTERN_C int _gl_cxxalias_dummy
238 #else
239 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
240  _GL_EXTERN_C int _gl_cxxalias_dummy
241 #endif
242 
243 /* _GL_CXXALIASWARN (func);
244  causes a warning to be emitted when ::func is used but not when
245  GNULIB_NAMESPACE::func is used. func must be defined without overloaded
246  variants. */
247 #if defined __cplusplus && defined GNULIB_NAMESPACE
248 # define _GL_CXXALIASWARN(func) \
249  _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
250 # define _GL_CXXALIASWARN_1(func,namespace) \
251  _GL_CXXALIASWARN_2 (func, namespace)
252 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
253  we enable the warning only when not optimizing. */
254 # if !__OPTIMIZE__
255 # define _GL_CXXALIASWARN_2(func,namespace) \
256  _GL_WARN_ON_USE (func, \
257  "The symbol ::" #func " refers to the system function. " \
258  "Use " #namespace "::" #func " instead.")
259 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
260 # define _GL_CXXALIASWARN_2(func,namespace) \
261  extern __typeof__ (func) func
262 # else
263 # define _GL_CXXALIASWARN_2(func,namespace) \
264  _GL_EXTERN_C int _gl_cxxalias_dummy
265 # endif
266 #else
267 # define _GL_CXXALIASWARN(func) \
268  _GL_EXTERN_C int _gl_cxxalias_dummy
269 #endif
270 
271 /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
272  causes a warning to be emitted when the given overloaded variant of ::func
273  is used but not when GNULIB_NAMESPACE::func is used. */
274 #if defined __cplusplus && defined GNULIB_NAMESPACE
275 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
276  _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
277  GNULIB_NAMESPACE)
278 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
279  _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
280 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
281  we enable the warning only when not optimizing. */
282 # if !__OPTIMIZE__
283 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
284  _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
285  "The symbol ::" #func " refers to the system function. " \
286  "Use " #namespace "::" #func " instead.")
287 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
288 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
289  extern __typeof__ (func) func
290 # else
291 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
292  _GL_EXTERN_C int _gl_cxxalias_dummy
293 # endif
294 #else
295 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
296  _GL_EXTERN_C int _gl_cxxalias_dummy
297 #endif
298 
299 #endif /* _GL_CXXDEFS_H */
300 
301 /* The definition of _GL_ARG_NONNULL is copied here. */
302 /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
303  that the values passed as arguments n, ..., m must be non-NULL pointers.
304  n = 1 stands for the first argument, n = 2 for the second argument etc. */
305 #ifndef _GL_ARG_NONNULL
306 # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
307 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
308 # else
309 # define _GL_ARG_NONNULL(params)
310 # endif
311 #endif
312 
313 /* The definition of _GL_WARN_ON_USE is copied here. */
314 #ifndef _GL_WARN_ON_USE
315 
316 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
317 /* A compiler attribute is available in gcc versions 4.3.0 and later. */
318 # define _GL_WARN_ON_USE(function, message) \
319 extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
320 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
321 /* Verify the existence of the function. */
322 # define _GL_WARN_ON_USE(function, message) \
323 extern __typeof__ (function) function
324 # else /* Unsupported. */
325 # define _GL_WARN_ON_USE(function, message) \
326 _GL_WARN_EXTERN_C int _gl_warn_on_use
327 # endif
328 #endif
329 
330 /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
331  is like _GL_WARN_ON_USE (function, "string"), except that the function is
332  declared with the given prototype, consisting of return type, parameters,
333  and attributes.
334  This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
335  not work in this case. */
336 #ifndef _GL_WARN_ON_USE_CXX
337 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
338 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
339 extern rettype function parameters_and_attributes \
340  __attribute__ ((__warning__ (msg)))
341 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
342 /* Verify the existence of the function. */
343 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
344 extern rettype function parameters_and_attributes
345 # else /* Unsupported. */
346 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
347 _GL_WARN_EXTERN_C int _gl_warn_on_use
348 # endif
349 #endif
350 
351 /* _GL_WARN_EXTERN_C declaration;
352  performs the declaration with C linkage. */
353 #ifndef _GL_WARN_EXTERN_C
354 # if defined __cplusplus
355 # define _GL_WARN_EXTERN_C extern "C"
356 # else
357 # define _GL_WARN_EXTERN_C extern
358 # endif
359 #endif
360 
361 /* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3).
362  Or they define it with the wrong member names or define it in <sys/time.h>
363  (e.g., FreeBSD circa 1997). Stock Mingw does not define it, but the
364  pthreads-win32 library defines it in <pthread.h>. */
365 # if ! 1
366 # if 0
367 # include <sys/time.h>
368 # elif 0
369 # include <pthread.h>
370 /* The pthreads-win32 <pthread.h> also defines a couple of broken macros. */
371 # undef asctime_r
372 # undef ctime_r
373 # undef gmtime_r
374 # undef localtime_r
375 # undef rand_r
376 # undef strtok_r
377 # else
378 
379 # ifdef __cplusplus
380 extern "C" {
381 # endif
382 
383 # if !GNULIB_defined_struct_timespec
384 # undef timespec
385 # define timespec rpl_timespec
386 struct timespec
387 {
388  time_t tv_sec;
389  long int tv_nsec;
390 };
391 # define GNULIB_defined_struct_timespec 1
392 # endif
393 
394 # ifdef __cplusplus
395 }
396 # endif
397 
398 # endif
399 # endif
400 
401 # if !GNULIB_defined_struct_time_t_must_be_integral
402 /* Per http://austingroupbugs.net/view.php?id=327, POSIX requires
403  time_t to be an integer type, even though C99 permits floating
404  point. We don't know of any implementation that uses floating
405  point, and it is much easier to write code that doesn't have to
406  worry about that corner case, so we force the issue. */
408  unsigned int __floating_time_t_unsupported : (time_t) 1;
409 };
410 # define GNULIB_defined_struct_time_t_must_be_integral 1
411 # endif
412 
413 /* Sleep for at least RQTP seconds unless interrupted, If interrupted,
414  return -1 and store the remaining time into RMTP. See
415  <http://www.opengroup.org/susv3xsh/nanosleep.html>. */
416 # if 0
417 # if GNULIB_PORTCHECK
418 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
419 # define nanosleep rpl_nanosleep
420 # endif
421 _GL_FUNCDECL_RPL (nanosleep, int,
422  (struct timespec const *__rqtp, struct timespec *__rmtp)
423  _GL_ARG_NONNULL ((1)));
424 _GL_CXXALIAS_RPL (nanosleep, int,
425  (struct timespec const *__rqtp, struct timespec *__rmtp));
426 # else
427 # if ! 1
428 _GL_FUNCDECL_SYS (nanosleep, int,
429  (struct timespec const *__rqtp, struct timespec *__rmtp)
430  _GL_ARG_NONNULL ((1)));
431 # endif
432 _GL_CXXALIAS_SYS (nanosleep, int,
433  (struct timespec const *__rqtp, struct timespec *__rmtp));
434 # endif
435 _GL_CXXALIASWARN (nanosleep);
436 # endif
437 
438 /* Return the 'time_t' representation of TP and normalize TP. */
439 # if 0
440 # if GNULIB_PORTCHECK
441 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
442 # define mktime rpl_mktime
443 # endif
444 _GL_FUNCDECL_RPL (mktime, time_t, (struct tm *__tp) _GL_ARG_NONNULL ((1)));
445 _GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp));
446 # else
447 _GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp));
448 # endif
449 _GL_CXXALIASWARN (mktime);
450 # endif
451 
452 /* Convert TIMER to RESULT, assuming local time and UTC respectively. See
453  <http://www.opengroup.org/susv3xsh/localtime_r.html> and
454  <http://www.opengroup.org/susv3xsh/gmtime_r.html>. */
455 # if 0
456 # if GNULIB_PORTCHECK
457 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
458 # undef localtime_r
459 # define localtime_r rpl_localtime_r
460 # endif
461 _GL_FUNCDECL_RPL (localtime_r, struct tm *, (time_t const *restrict __timer,
462  struct tm *restrict __result)
463  _GL_ARG_NONNULL ((1, 2)));
464 _GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer,
465  struct tm *restrict __result));
466 # else
467 # if ! 1
468 _GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer,
469  struct tm *restrict __result)
470  _GL_ARG_NONNULL ((1, 2)));
471 # endif
472 _GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer,
473  struct tm *restrict __result));
474 # endif
475 # if 1
476 _GL_CXXALIASWARN (localtime_r);
477 # endif
478 # if GNULIB_PORTCHECK
479 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
480 # undef gmtime_r
481 # define gmtime_r rpl_gmtime_r
482 # endif
483 _GL_FUNCDECL_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer,
484  struct tm *restrict __result)
485  _GL_ARG_NONNULL ((1, 2)));
486 _GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer,
487  struct tm *restrict __result));
488 # else
489 # if ! 1
490 _GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer,
491  struct tm *restrict __result)
492  _GL_ARG_NONNULL ((1, 2)));
493 # endif
494 _GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer,
495  struct tm *restrict __result));
496 # endif
497 # if 1
498 _GL_CXXALIASWARN (gmtime_r);
499 # endif
500 # endif
501 
502 /* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store
503  the resulting broken-down time into TM. See
504  <http://www.opengroup.org/susv3xsh/strptime.html>. */
505 # if 0
506 # if ! 1
507 _GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf,
508  char const *restrict __format,
509  struct tm *restrict __tm)
510  _GL_ARG_NONNULL ((1, 2, 3)));
511 # endif
512 _GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf,
513  char const *restrict __format,
514  struct tm *restrict __tm));
515 _GL_CXXALIASWARN (strptime);
516 # endif
517 
518 /* Convert TM to a time_t value, assuming UTC. */
519 # if 0
520 # if GNULIB_PORTCHECK
521 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
522 # undef timegm
523 # define timegm rpl_timegm
524 # endif
525 _GL_FUNCDECL_RPL (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1)));
526 _GL_CXXALIAS_RPL (timegm, time_t, (struct tm *__tm));
527 # else
528 # if ! 1
529 _GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1)));
530 # endif
531 _GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm));
532 # endif
533 _GL_CXXALIASWARN (timegm);
534 # endif
535 
536 /* Encourage applications to avoid unsafe functions that can overrun
537  buffers when given outlandish struct tm values. Portable
538  applications should use strftime (or even sprintf) instead. */
539 # if defined GNULIB_POSIXCHECK
540 # undef asctime
541 _GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - "
542  "better use strftime (or even sprintf) instead");
543 # endif
544 # if defined GNULIB_POSIXCHECK
545 # undef asctime_r
546 _GL_WARN_ON_USE (asctime, "asctime_r can overrun buffers in some cases - "
547  "better use strftime (or even sprintf) instead");
548 # endif
549 # if defined GNULIB_POSIXCHECK
550 # undef ctime
551 _GL_WARN_ON_USE (asctime, "ctime can overrun buffers in some cases - "
552  "better use strftime (or even sprintf) instead");
553 # endif
554 # if defined GNULIB_POSIXCHECK
555 # undef ctime_r
556 _GL_WARN_ON_USE (asctime, "ctime_r can overrun buffers in some cases - "
557  "better use strftime (or even sprintf) instead");
558 # endif
559 
560 #endif
#define _GL_CXXALIAS_RPL(func, rettype, parameters)
Definition: time.h:143
#define _GL_ARG_NONNULL(params)
Definition: time.h:309
#define _GL_WARN_ON_USE(function, message)
Definition: time.h:325
#define _GL_FUNCDECL_SYS(func, rettype, parameters_and_attributes)
Definition: time.h:134
#define _GL_CXXALIASWARN(func)
Definition: time.h:267
#define _GL_FUNCDECL_RPL(func, rettype, parameters_and_attributes)
Definition: time.h:122
#define _GL_CXXALIAS_SYS(func, rettype, parameters)
Definition: time.h:196
unsigned int __floating_time_t_unsupported
Definition: time.h:408
#define restrict
Definition: config.h:1410