diff options
author | Rich Felker <dalias@aerifal.cx> | 2013-11-24 21:42:55 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2013-11-24 21:42:55 -0500 |
commit | c8a9c22173f485c8c053709e1dfa0a617cb6be1a (patch) | |
tree | 6e09d7e73bbff957b45370d412cc6299fe51eb37 /include/stdarg.h | |
parent | 7e771e62e78944b9d1fe7e78ef71422b9d51f275 (diff) | |
download | musl-c8a9c22173f485c8c053709e1dfa0a617cb6be1a.tar.gz musl-c8a9c22173f485c8c053709e1dfa0a617cb6be1a.tar.xz musl-c8a9c22173f485c8c053709e1dfa0a617cb6be1a.zip |
restore type of NULL to void * except when used in C++ programs
unfortunately this eliminates the ability of the compiler to diagnose some dangerous/incorrect usage, but POSIX requires (as an extension to the C language, i.e. CX shaded) that NULL have type void *. plain C allows it to be defined as any null pointer constant. the definition 0L is preserved for C++ rather than reverting to plain 0 to avoid dangerous behavior in non-conforming programs which use NULL as a variadic sentinel. (it's impossible to use (void *)0 for C++ since C++ lacks the proper implicit pointer conversions, and other popular alternatives like the GCC __null extension seem non-conforming to the standard's requirements.)
Diffstat (limited to 'include/stdarg.h')
0 files changed, 0 insertions, 0 deletions