WCDH: use better fallback value for nullptr with old gcc versions

GCC supports the __null builtin basically forever (since at least 2.95), which
behaves very much like nullptr later does. Use this instead of plain "0" as
fallback value, otherwise passing the define to functions annotated with
__attribute__((sentinel)) will result in a compiler warning.
This commit is contained in:
Rolf Eike Beer
2018-03-19 21:52:40 +01:00
parent 1c3bbda2f2
commit dc863592bc

View File

@@ -557,7 +557,18 @@ template<> struct ${prefix_arg}StaticAssert<true>{};
# endif
\n")
endif()
_simpledefine(cxx_nullptr NULLPTR nullptr 0)
if (feature STREQUAL cxx_nullptr)
set(def_value "${prefix_arg}_NULLPTR")
string(APPEND file_content "
# if defined(${def_name}) && ${def_name}
# define ${def_value} nullptr
# elif ${prefix_arg}_COMPILER_IS_GNU
# define ${def_value} __null
# else
# define ${def_value} 0
# endif
\n")
endif()
if (feature STREQUAL cxx_thread_local)
set(def_value "${prefix_arg}_THREAD_LOCAL")
string(APPEND file_content "