diff options
| -rw-r--r-- | libcxx/include/__config | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libcxx/include/__config b/libcxx/include/__config index 868914d9899..186ee309a88 100644 --- a/libcxx/include/__config +++ b/libcxx/include/__config @@ -48,6 +48,10 @@ #define _LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB #define _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE #define _LIBCPP_ABI_VARIADIC_LOCK_GUARD +// Don't use a nullptr_t simulation type in C++03 and use theh C++11 nullptr +// provided under the alternate keyword __nullptr, which changes the mangling +// of nullptr_t. This option is ABI incompatible with GCC in C++03 mode. +#define _LIBCPP_ABI_ALWAYS_USE_CXX11_NULLPTR #elif _LIBCPP_ABI_VERSION == 1 // Feature macros for disabling pre ABI v1 features. All of these options // are deprecated. @@ -266,7 +270,11 @@ typedef __char32_t char32_t; #endif #if !(__has_feature(cxx_nullptr)) -#define _LIBCPP_HAS_NO_NULLPTR +# if __has_extension(cxx_nullptr) && defined(_LIBCPP_ABI_ALWAYS_USE_CXX11_NULLPTR) +# define nullptr __nullptr +# else +# define _LIBCPP_HAS_NO_NULLPTR +# endif #endif #if !(__has_feature(cxx_rvalue_references)) |

