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[1]. It does not even mention proposal N1327[2], 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: <https://github.com/macports/macports-ports/tree/master/_resources/port1.0/checks/implicit_function_declaration>

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.

[1] <https://clang.llvm.org/c_status.html#c11>
[2] N1327 "Abandoning a Process" <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1327.htm>

Best regards,
    —Jim DeLaHunt, Vancouver, Canada


Reply via email to