How to suppress -Wimplicit-function-declaration warning, if <stdlib.h> really does not have the declaration?
list+macports-dev at jdlh.com
Thu Jan 27 08:41:18 UTC 2022
Thank you for your reply, Joshua.
On 2022-01-26 02:59, Joshua Root wrote:
> On 2022-1-26 18:43 , Jim DeLaHunt wrote:
>> When I attempt to compile it with clang as provided by XCode 11.2.1
>> (11B5000) on macOS 10.14.6 Mojave, I get the
>> -Wimplicit-function-declaration warning:
>> … [snip] …
>> But this code does have the right system header: <stdlib.h>. It looks
>> like that header does not include a declaration of at_quick_exit().…
> I get the same result on Big Sur. Curious, since at_quick_exit is
> apparently part of the C11 standard.
Yes, it is curious. I found a page which claims to show clang's C11
implementation status. It does not even mention proposal N1327,
which appears to be the document for at_quick_exit and friends. It also
shows 60% of the C11 proposals as having "unknown" availability in
clang. So that is evidence that we should not expect clang to have a
complete implementation of C11.
> In any case, we maintain lists of functions that are known not to
> exist on each macOS version, so the warning can be suppressed. They
> are in the ports tree here:
Thank you for pointing this out. I may use it. But first I need to check
the five other -Wimplicit-function-declaration warnings in this port. I
think they are all just missing a #include <stdlib.h> or <string.h>, but
I need to check.
 N1327 "Abandoning a Process"
—Jim DeLaHunt, Vancouver, Canada
More information about the macports-dev