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
#include<stddef.h>
#include<sys/wait.h>
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
http://cygwin.com/ml/cygwin-patches/2011-q4/msg00003.html
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.

Christian


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to