Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
libcxx/include/__config
Show First 20 Lines • Show All 96 Lines • ▼ Show 20 Lines | |||||
# define _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET | # define _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET | ||||
// Use the smallest possible integer type to represent the index of the variant. | // Use the smallest possible integer type to represent the index of the variant. | ||||
// Previously libc++ used "unsigned int" exclusively. | // Previously libc++ used "unsigned int" exclusively. | ||||
# define _LIBCPP_ABI_VARIANT_INDEX_TYPE_OPTIMIZATION | # define _LIBCPP_ABI_VARIANT_INDEX_TYPE_OPTIMIZATION | ||||
// Unstable attempt to provide a more optimized std::function | // Unstable attempt to provide a more optimized std::function | ||||
# define _LIBCPP_ABI_OPTIMIZED_FUNCTION | # define _LIBCPP_ABI_OPTIMIZED_FUNCTION | ||||
// All the regex constants must be distinct and nonzero. | // All the regex constants must be distinct and nonzero. | ||||
# define _LIBCPP_ABI_REGEX_CONSTANTS_NONZERO | # define _LIBCPP_ABI_REGEX_CONSTANTS_NONZERO | ||||
// Optimize the copy constructor to inline SSO copies. | |||||
// This removes the copy constructor from the ABI, and depends on | |||||
// the presence of __init_long() in the dylib / lib. | |||||
# define _LIBCPP_ABI_OPTIMIZE_COPY_CTOR | |||||
#elif _LIBCPP_ABI_VERSION == 1 | #elif _LIBCPP_ABI_VERSION == 1 | ||||
# if !defined(_LIBCPP_OBJECT_FORMAT_COFF) | # if !defined(_LIBCPP_OBJECT_FORMAT_COFF) | ||||
// Enable compiling copies of now inline methods into the dylib to support | // Enable compiling copies of now inline methods into the dylib to support | ||||
// applications compiled against older libraries. This is unnecessary with | // applications compiled against older libraries. This is unnecessary with | ||||
// COFF dllexport semantics, since dllexport forces a non-inline definition | // COFF dllexport semantics, since dllexport forces a non-inline definition | ||||
// of inline functions to be emitted anyway. Our own non-inline copy would | // of inline functions to be emitted anyway. Our own non-inline copy would | ||||
// conflict with the dllexport-emitted copy, so we disable it. | // conflict with the dllexport-emitted copy, so we disable it. | ||||
# define _LIBCPP_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS | # define _LIBCPP_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS | ||||
▲ Show 20 Lines • Show All 639 Lines • ▼ Show 20 Lines | |||||
# endif | # endif | ||||
#else | #else | ||||
# define _LIBCPP_HIDE_FROM_ABI_AFTER_V1 _LIBCPP_HIDE_FROM_ABI | # define _LIBCPP_HIDE_FROM_ABI_AFTER_V1 _LIBCPP_HIDE_FROM_ABI | ||||
#endif | #endif | ||||
// Just so we can migrate to the new macros gradually. | // Just so we can migrate to the new macros gradually. | ||||
#define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI | #define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI | ||||
// Selectively hide functions from ABI for either STABLE or UNSTABLE ABI. | |||||
// These macros allow ABI breakage for UNSTABLE while preserving STABLE ABI. | |||||
#ifdef _LIBCPP_ABI_UNSTABLE | |||||
#define _LIBCPP_HIDE_FROM_ABI_IN_STABLE | |||||
#define _LIBCPP_INLINE_IN_STABLE | |||||
#define _LIBCPP_HIDE_FROM_ABI_IN_UNSTABLE _LIBCPP_HIDE_FROM_ABI | |||||
#define _LIBCPP_INLINE_IN_UNSTABLE inline | |||||
#else | |||||
#define _LIBCPP_HIDE_FROM_ABI_IN_STABLE _LIBCPP_HIDE_FROM_ABI | |||||
#define _LIBCPP_INLINE_IN_STABLE inline | |||||
#define _LIBCPP_HIDE_FROM_ABI_IN_UNSTABLE | |||||
#define _LIBCPP_INLINE_IN_UNSTABLE | |||||
#endif | |||||
// Inline namespaces are available in Clang/GCC/MSVC regardless of C++ dialect. | // Inline namespaces are available in Clang/GCC/MSVC regardless of C++ dialect. | ||||
#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { inline namespace _LIBCPP_ABI_NAMESPACE { | #define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { inline namespace _LIBCPP_ABI_NAMESPACE { | ||||
#define _LIBCPP_END_NAMESPACE_STD } } | #define _LIBCPP_END_NAMESPACE_STD } } | ||||
#define _VSTD std::_LIBCPP_ABI_NAMESPACE | #define _VSTD std::_LIBCPP_ABI_NAMESPACE | ||||
_LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD | _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD | ||||
#if _LIBCPP_STD_VER >= 17 | #if _LIBCPP_STD_VER >= 17 | ||||
#define _LIBCPP_BEGIN_NAMESPACE_FILESYSTEM \ | #define _LIBCPP_BEGIN_NAMESPACE_FILESYSTEM \ | ||||
▲ Show 20 Lines • Show All 700 Lines • Show Last 20 Lines |