This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Failure to bootstrap current gcc trunk on cygwin (20111207 snapshot): conflicting declarations in cygwin's /usr/include/sys/wait.h
On 8 December 2011 01:09, Ian Lance Taylor wrote:
> Jonathan Wakely <jwakely.gcc@gmail.com> writes:
>
>>> Should the Cygwin header use
>>> extern "C++" on those declarations even though they're inside #ifdef
>>> __cplusplus, or should adaint.c not #include things inside extern "C"?
>>
>> You could surround them in extern "C++", linkage specifications nest.
>
> ...but I think it would be better for adaint.c to not #include system
> header files inside extern "C".
Indeed, I sent a follow up message which the gcc list rejected because
the android gmail app refuses to send plain text email. Here's what I
said:
Oh sorry, I missed that the question was about a /standard/ header.
Not sure about that. I think it's invalid, the standard says:
"Whether a name from the C standard library declared with external
linkage has extern "C" or extern "C++" linkage is
implementation-defined."
It shouldn't be needed unless the header is quite broken, and might
cause problems, as it has here. A well behaved header will put
explicit extern "C++" around anything that need "C++" language
linkage, to protect against such questionable behaviour from users.