diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2009-05-16 22:38:22 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2009-05-16 22:38:22 +0000 |
commit | 8394b52f4259c85b39e1114e6f239599f50fbcc2 (patch) | |
tree | 502ea02891b8fad16d4bdfe18d8fd803acfc33c6 /libc/stdlib | |
parent | 5b818e69bce954be61aeebb12d111006ce13c0eb (diff) |
Merge changes between r8459 and r8463 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@8464 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/stdlib')
-rw-r--r-- | libc/stdlib/stdlib.h | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/libc/stdlib/stdlib.h b/libc/stdlib/stdlib.h index 77bb86045..1b88ce6a5 100644 --- a/libc/stdlib/stdlib.h +++ b/libc/stdlib/stdlib.h @@ -48,15 +48,15 @@ __BEGIN_DECLS as well as POSIX.1 use of `int' for the status word. */ # if defined __GNUC__ && !defined __cplusplus -# define __WAIT_INT(status) \ - (__extension__ ({ union { __typeof(status) __in; int __i; } __u; \ - __u.__in = (status); __u.__i; })) +# define __WAIT_INT(status) \ + (__extension__ (((union { __typeof(status) __in; int __i; }) \ + { .__in = (status) }).__i)) # else # define __WAIT_INT(status) (*(int *) &(status)) # endif /* This is the type of the argument to `wait'. The funky union - causes redeclarations with ether `int *' or `union wait *' to be + causes redeclarations with either `int *' or `union wait *' to be allowed without complaint. __WAIT_STATUS_DEFN is the type used in the actual function definitions. */ @@ -82,14 +82,14 @@ typedef union # endif /* Use BSD. */ /* Define the macros <sys/wait.h> also would define this way. */ -# define WEXITSTATUS(status) __WEXITSTATUS(__WAIT_INT(status)) -# define WTERMSIG(status) __WTERMSIG(__WAIT_INT(status)) -# define WSTOPSIG(status) __WSTOPSIG(__WAIT_INT(status)) -# define WIFEXITED(status) __WIFEXITED(__WAIT_INT(status)) -# define WIFSIGNALED(status) __WIFSIGNALED(__WAIT_INT(status)) -# define WIFSTOPPED(status) __WIFSTOPPED(__WAIT_INT(status)) +# define WEXITSTATUS(status) __WEXITSTATUS (__WAIT_INT (status)) +# define WTERMSIG(status) __WTERMSIG (__WAIT_INT (status)) +# define WSTOPSIG(status) __WSTOPSIG (__WAIT_INT (status)) +# define WIFEXITED(status) __WIFEXITED (__WAIT_INT (status)) +# define WIFSIGNALED(status) __WIFSIGNALED (__WAIT_INT (status)) +# define WIFSTOPPED(status) __WIFSTOPPED (__WAIT_INT (status)) # ifdef __WIFCONTINUED -# define WIFCONTINUED(status) __WIFCONTINUED(__WAIT_INT(status)) +# define WIFCONTINUED(status) __WIFCONTINUED (__WAIT_INT (status)) # endif #endif /* X/Open and <sys/wait.h> not included. */ @@ -222,14 +222,14 @@ __END_NAMESPACE_C99 #ifdef __USE_GNU /* The concept of one static locale per category is not very well thought out. Many applications will need to process its data using - information from several different locales. Another application is + information from several different locales. Another problem is the implementation of the internationalization handling in the - upcoming ISO C++ standard library. To support this another set of - the functions using locale data exist which have an additional + ISO C++ standard library. To support this another set of + the functions using locale data exist which take an additional argument. - Attention: all these functions are *not* standardized in any form. - This is a proof-of-concept implementation. */ + Attention: even though several *_l interfaces are part of POSIX:2008, + these are not. */ /* Structure for reentrant locale using functions. This is an (almost) opaque type for the user level programs. */ |