This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bug in sys/wait.h with C++

Christopher Faylor wrote:
On Tue, Feb 07, 2012 at 08:39:46PM -0600, Yaakov (Cygwin/X) wrote:
Just came across an issue with<sys/wait.h> in C++. STC:

$ cat test.c
int main(void) { wait(NULL); return 0; }

$ gcc -Wall test.c

$ gcc -x c++ -Wall test.c
test.c: In function ???int main()???:
test.c:2:27: error: call of overloaded ???wait(NULL)??? is ambiguous
/usr/include/sys/wait.h:37:7: note: candidates are: pid_t wait(int*)
/usr/include/sys/wait.h:82:14: note:                 pid_t wait(wait*)

This code compiles cleanly on Linux.
I guess we have to incorporate Linux's head-standing in
/usr/include/sys/wait.h to allow both the use of union wait * and int as
arguments to wait().

Yes. Unfortunately the typesafe approach from does not work with NULL (0 in C++), sorry.

Workaround: wait((int *)0) or wait((union wait *)0);

Anyone want to send a patch to cygwin-patches?

I'll do soon.


-- Problem reports: FAQ: Documentation: Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]