diff options
author | Florian Weimer <fweimer@redhat.com> | 2016-04-14 08:54:57 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2016-04-14 08:54:57 +0200 |
commit | b49ab5f4503f36dcbf43f821f817da66b2931fe6 (patch) | |
tree | 3b3eb99facf62df3f8f436ef71a66aee7c953c2c /bits | |
parent | 5f5682b9654101ccaf375c2814cbddbe6033a725 (diff) | |
download | glibc-b49ab5f4503f36dcbf43f821f817da66b2931fe6.zip glibc-b49ab5f4503f36dcbf43f821f817da66b2931fe6.tar.gz glibc-b49ab5f4503f36dcbf43f821f817da66b2931fe6.tar.bz2 |
Remove union wait [BZ #19613]
The overloading approach in the W* macros was incompatible with
integer expressions of a type different from int. Applications
using union wait and these macros will have to migrate to the
POSIX-specified int status type.
Diffstat (limited to 'bits')
-rw-r--r-- | bits/waitstatus.h | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/bits/waitstatus.h b/bits/waitstatus.h index 38c33bc..069ce4b 100644 --- a/bits/waitstatus.h +++ b/bits/waitstatus.h @@ -57,49 +57,3 @@ #define __W_STOPCODE(sig) ((sig) << 8 | 0x7f) #define __W_CONTINUED 0xffff #define __WCOREFLAG 0x80 - - -#ifdef __USE_MISC - -# include <endian.h> - -union wait - { - int w_status; - struct - { -# if __BYTE_ORDER == __LITTLE_ENDIAN - unsigned int __w_termsig:7; /* Terminating signal. */ - unsigned int __w_coredump:1; /* Set if dumped core. */ - unsigned int __w_retcode:8; /* Return code if exited normally. */ - unsigned int:16; -# endif /* Little endian. */ -# if __BYTE_ORDER == __BIG_ENDIAN - unsigned int:16; - unsigned int __w_retcode:8; - unsigned int __w_coredump:1; - unsigned int __w_termsig:7; -# endif /* Big endian. */ - } __wait_terminated; - struct - { -# if __BYTE_ORDER == __LITTLE_ENDIAN - unsigned int __w_stopval:8; /* W_STOPPED if stopped. */ - unsigned int __w_stopsig:8; /* Stopping signal. */ - unsigned int:16; -# endif /* Little endian. */ -# if __BYTE_ORDER == __BIG_ENDIAN - unsigned int:16; - unsigned int __w_stopsig:8; /* Stopping signal. */ - unsigned int __w_stopval:8; /* W_STOPPED if stopped. */ -# endif /* Big endian. */ - } __wait_stopped; - }; - -# define w_termsig __wait_terminated.__w_termsig -# define w_coredump __wait_terminated.__w_coredump -# define w_retcode __wait_terminated.__w_retcode -# define w_stopsig __wait_stopped.__w_stopsig -# define w_stopval __wait_stopped.__w_stopval - -#endif /* Use misc. */ |