On 23 October 2017 at 17:09, Stefan Hajnoczi <stefa...@gmail.com> wrote: >> +/* strnlen() is not available on Mac OS < 10.7 */ >> +# if (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7) > > Does this cover the case where MAC_OS_X_VERSION_MAX_ALLOWED is set to > <1070 on a 10.7+ build machine? It's possible that the <string.h> > header would define strnlen() and your code redefines the function > (compiler error).
In that case you don't want to use the strnlen() declaration from the header, you want the inline somehow, because even if the declaration is present and using it doesn't fail compile the definition won't be around at runtime. > It would be best to check how <string.h>, <Availability.h>, and > <AvailabilityMacros.h> work to make sure that all cases are handled. I > don't have access to a Mac right now, sorry. It uses the clang 'attribute availability' syntax: https://clang.llvm.org/docs/AttributeReference.html#availability thanks -- PMM