| |
| |
| |
| |
| |
| |
| |
| |
|
|
| #ifndef _LIBCPP___CONFIGURATION_AVAILABILITY_H |
| #define _LIBCPP___CONFIGURATION_AVAILABILITY_H |
|
|
| #include <__configuration/compiler.h> |
| #include <__configuration/language.h> |
|
|
| #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) |
| # pragma GCC system_header |
| #endif |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| #if defined(_LIBCPP_BUILDING_LIBRARY) || defined(_LIBCXXABI_BUILDING_LIBRARY) || \ |
| !defined(_LIBCPP_COMPILER_CLANG_BASED) || defined(_LIBCPP_DISABLE_AVAILABILITY) |
| # undef _LIBCPP_HAS_VENDOR_AVAILABILITY_ANNOTATIONS |
| # define _LIBCPP_HAS_VENDOR_AVAILABILITY_ANNOTATIONS 0 |
| #endif |
|
|
| |
| |
| #if !_LIBCPP_HAS_VENDOR_AVAILABILITY_ANNOTATIONS |
|
|
| # define _LIBCPP_INTRODUCED_IN_LLVM_21 1 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_21_ATTRIBUTE |
|
|
| # define _LIBCPP_INTRODUCED_IN_LLVM_20 1 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_20_ATTRIBUTE |
|
|
| # define _LIBCPP_INTRODUCED_IN_LLVM_19 1 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_19_ATTRIBUTE |
|
|
| # define _LIBCPP_INTRODUCED_IN_LLVM_18 1 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_18_ATTRIBUTE |
|
|
| # define _LIBCPP_INTRODUCED_IN_LLVM_16 1 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_16_ATTRIBUTE |
|
|
| # define _LIBCPP_INTRODUCED_IN_LLVM_15 1 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_15_ATTRIBUTE |
|
|
| # define _LIBCPP_INTRODUCED_IN_LLVM_14 1 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_14_ATTRIBUTE |
|
|
| # define _LIBCPP_INTRODUCED_IN_LLVM_12 1 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_12_ATTRIBUTE |
|
|
| # define _LIBCPP_INTRODUCED_IN_LLVM_11 1 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_11_ATTRIBUTE |
|
|
| # define _LIBCPP_INTRODUCED_IN_LLVM_9 1 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE |
| # define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_PUSH |
| # define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_POP |
|
|
| #elif defined(__APPLE__) |
|
|
| |
|
|
| |
| |
| # define _LIBCPP_INTRODUCED_IN_LLVM_21 0 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_21_ATTRIBUTE __attribute__((unavailable)) |
|
|
| |
| |
| # define _LIBCPP_INTRODUCED_IN_LLVM_20 0 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_20_ATTRIBUTE __attribute__((unavailable)) |
|
|
| |
| |
| # define _LIBCPP_INTRODUCED_IN_LLVM_19 0 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_19_ATTRIBUTE __attribute__((unavailable)) |
|
|
| |
| # if (defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 150000) || \ |
| (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 180000) || \ |
| (defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 180000) || \ |
| (defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ < 110000) || \ |
| (defined(__ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__ < 90000) || \ |
| (defined(__ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__ < 240000) |
| # define _LIBCPP_INTRODUCED_IN_LLVM_18 0 |
| # else |
| # define _LIBCPP_INTRODUCED_IN_LLVM_18 1 |
| # endif |
| # define _LIBCPP_INTRODUCED_IN_LLVM_18_ATTRIBUTE \ |
| __attribute__((availability(macos, strict, introduced = 15.0))) \ |
| __attribute__((availability(ios, strict, introduced = 18.0))) \ |
| __attribute__((availability(tvos, strict, introduced = 18.0))) \ |
| __attribute__((availability(watchos, strict, introduced = 11.0))) \ |
| __attribute__((availability(bridgeos, strict, introduced = 9.0))) \ |
| __attribute__((availability(driverkit, strict, introduced = 24.0))) |
|
|
| |
| # if (defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 140000) || \ |
| (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 170000) || \ |
| (defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 170000) || \ |
| (defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ < 100000) || \ |
| (defined(__ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__ < 80000) || \ |
| (defined(__ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__ < 230000) |
| # define _LIBCPP_INTRODUCED_IN_LLVM_16 0 |
| # else |
| # define _LIBCPP_INTRODUCED_IN_LLVM_16 1 |
| # endif |
| # define _LIBCPP_INTRODUCED_IN_LLVM_16_ATTRIBUTE \ |
| __attribute__((availability(macos, strict, introduced = 14.0))) \ |
| __attribute__((availability(ios, strict, introduced = 17.0))) \ |
| __attribute__((availability(tvos, strict, introduced = 17.0))) \ |
| __attribute__((availability(watchos, strict, introduced = 10.0))) \ |
| __attribute__((availability(bridgeos, strict, introduced = 8.0))) \ |
| __attribute__((availability(driverkit, strict, introduced = 23.0))) |
|
|
| |
| # if (defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 130300) || \ |
| (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 160300) || \ |
| (defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 160300) || \ |
| (defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ < 90300) || \ |
| (defined(__ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__ < 70500) || \ |
| (defined(__ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__ < 220400) |
| # define _LIBCPP_INTRODUCED_IN_LLVM_15 0 |
| # else |
| # define _LIBCPP_INTRODUCED_IN_LLVM_15 1 |
| # endif |
| # define _LIBCPP_INTRODUCED_IN_LLVM_15_ATTRIBUTE \ |
| __attribute__((availability(macos, strict, introduced = 13.3))) \ |
| __attribute__((availability(ios, strict, introduced = 16.3))) \ |
| __attribute__((availability(tvos, strict, introduced = 16.3))) \ |
| __attribute__((availability(watchos, strict, introduced = 9.3))) \ |
| __attribute__((availability(bridgeos, strict, introduced = 7.5))) \ |
| __attribute__((availability(driverkit, strict, introduced = 22.4))) |
|
|
| |
| # define _LIBCPP_INTRODUCED_IN_LLVM_14 _LIBCPP_INTRODUCED_IN_LLVM_15 |
| # define _LIBCPP_INTRODUCED_IN_LLVM_14_ATTRIBUTE _LIBCPP_INTRODUCED_IN_LLVM_15_ATTRIBUTE |
|
|
| |
| # if (defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 120300) || \ |
| (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 150300) || \ |
| (defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 150300) || \ |
| (defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ < 80300) || \ |
| (defined(__ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__ < 60000) || \ |
| (defined(__ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__ < 210300) |
| # define _LIBCPP_INTRODUCED_IN_LLVM_12 0 |
| # else |
| # define _LIBCPP_INTRODUCED_IN_LLVM_12 1 |
| # endif |
| # define _LIBCPP_INTRODUCED_IN_LLVM_12_ATTRIBUTE \ |
| __attribute__((availability(macos, strict, introduced = 12.3))) \ |
| __attribute__((availability(ios, strict, introduced = 15.3))) \ |
| __attribute__((availability(tvos, strict, introduced = 15.3))) \ |
| __attribute__((availability(watchos, strict, introduced = 8.3))) \ |
| __attribute__((availability(bridgeos, strict, introduced = 6.0))) \ |
| __attribute__((availability(driverkit, strict, introduced = 21.3))) |
|
|
| |
| # if (defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 110000) || \ |
| (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 140000) || \ |
| (defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 140000) || \ |
| (defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ < 70000) |
| # define _LIBCPP_INTRODUCED_IN_LLVM_11 0 |
| # else |
| # define _LIBCPP_INTRODUCED_IN_LLVM_11 1 |
| # endif |
| # define _LIBCPP_INTRODUCED_IN_LLVM_11_ATTRIBUTE \ |
| __attribute__((availability(macos, strict, introduced = 11.0))) \ |
| __attribute__((availability(ios, strict, introduced = 14.0))) \ |
| __attribute__((availability(tvos, strict, introduced = 14.0))) \ |
| __attribute__((availability(watchos, strict, introduced = 7.0))) |
|
|
| |
| # if (defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 101500) || \ |
| (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 130000) || \ |
| (defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 130000) || \ |
| (defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ < 60000) |
| # define _LIBCPP_INTRODUCED_IN_LLVM_9 0 |
| # else |
| # define _LIBCPP_INTRODUCED_IN_LLVM_9 1 |
| # endif |
| # define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE \ |
| __attribute__((availability(macos, strict, introduced = 10.15))) \ |
| __attribute__((availability(ios, strict, introduced = 13.0))) \ |
| __attribute__((availability(tvos, strict, introduced = 13.0))) \ |
| __attribute__((availability(watchos, strict, introduced = 6.0))) |
| # define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_PUSH \ |
| _Pragma("clang attribute push(__attribute__((availability(macos,strict,introduced=10.15))), apply_to=any(function,record))") \ |
| _Pragma("clang attribute push(__attribute__((availability(ios,strict,introduced=13.0))), apply_to=any(function,record))") \ |
| _Pragma("clang attribute push(__attribute__((availability(tvos,strict,introduced=13.0))), apply_to=any(function,record))") \ |
| _Pragma("clang attribute push(__attribute__((availability(watchos,strict,introduced=6.0))), apply_to=any(function,record))") |
| # define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_POP \ |
| _Pragma("clang attribute pop") \ |
| _Pragma("clang attribute pop") \ |
| _Pragma("clang attribute pop") \ |
| _Pragma("clang attribute pop") |
|
|
| |
|
|
| #else |
|
|
| |
|
|
| # error \ |
| "It looks like you're trying to enable vendor availability markup, but you haven't defined the corresponding macros yet!" |
|
|
| #endif |
|
|
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY _LIBCPP_INTRODUCED_IN_LLVM_9 |
| #define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE |
| #define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_PUSH |
| #define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_POP |
|
|
| |
| |
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_SYNC _LIBCPP_INTRODUCED_IN_LLVM_11 |
| #define _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INTRODUCED_IN_LLVM_11_ATTRIBUTE |
|
|
| |
| |
| |
| |
| |
| |
| |
| #if !defined(_LIBCPP_COMPILER_GCC) && !defined(_WIN32) |
| # define _LIBCPP_AVAILABILITY_HAS_ADDITIONAL_IOSTREAM_EXPLICIT_INSTANTIATIONS_1 _LIBCPP_INTRODUCED_IN_LLVM_12 |
| #else |
| # define _LIBCPP_AVAILABILITY_HAS_ADDITIONAL_IOSTREAM_EXPLICIT_INSTANTIATIONS_1 0 |
| #endif |
|
|
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT _LIBCPP_INTRODUCED_IN_LLVM_14 |
| #define _LIBCPP_AVAILABILITY_TO_CHARS_FLOATING_POINT _LIBCPP_INTRODUCED_IN_LLVM_14_ATTRIBUTE |
|
|
| |
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_VERBOSE_ABORT _LIBCPP_INTRODUCED_IN_LLVM_15 |
| #define _LIBCPP_AVAILABILITY_VERBOSE_ABORT _LIBCPP_INTRODUCED_IN_LLVM_15_ATTRIBUTE |
|
|
| |
| |
| |
| |
| |
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_PMR _LIBCPP_INTRODUCED_IN_LLVM_16 |
| #define _LIBCPP_AVAILABILITY_PMR |
|
|
| |
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION _LIBCPP_INTRODUCED_IN_LLVM_18 |
| #define _LIBCPP_AVAILABILITY_INIT_PRIMARY_EXCEPTION _LIBCPP_INTRODUCED_IN_LLVM_18_ATTRIBUTE |
|
|
| |
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_PRINT _LIBCPP_INTRODUCED_IN_LLVM_18 |
| #define _LIBCPP_AVAILABILITY_PRINT _LIBCPP_INTRODUCED_IN_LLVM_18_ATTRIBUTE |
|
|
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_TZDB _LIBCPP_INTRODUCED_IN_LLVM_19 |
| #define _LIBCPP_AVAILABILITY_TZDB _LIBCPP_INTRODUCED_IN_LLVM_19_ATTRIBUTE |
|
|
| |
| |
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_BAD_FUNCTION_CALL_KEY_FUNCTION _LIBCPP_INTRODUCED_IN_LLVM_19 |
| #define _LIBCPP_AVAILABILITY_BAD_FUNCTION_CALL_KEY_FUNCTION _LIBCPP_INTRODUCED_IN_LLVM_19_ATTRIBUTE |
| #define _LIBCPP_AVAILABILITY_HAS_BAD_EXPECTED_ACCESS_KEY_FUNCTION _LIBCPP_INTRODUCED_IN_LLVM_19 |
| #define _LIBCPP_AVAILABILITY_BAD_EXPECTED_ACCESS_KEY_FUNCTION _LIBCPP_INTRODUCED_IN_LLVM_19_ATTRIBUTE |
|
|
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_FROM_CHARS_FLOATING_POINT _LIBCPP_INTRODUCED_IN_LLVM_20 |
| #define _LIBCPP_AVAILABILITY_FROM_CHARS_FLOATING_POINT _LIBCPP_INTRODUCED_IN_LLVM_20_ATTRIBUTE |
|
|
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_HASH_MEMORY _LIBCPP_INTRODUCED_IN_LLVM_21 |
| |
|
|
| |
| |
| #define _LIBCPP_AVAILABILITY_HAS_BAD_FUNCTION_CALL_GOOD_WHAT_MESSAGE _LIBCPP_INTRODUCED_IN_LLVM_21 |
| |
|
|
| |
| |
| #if !_LIBCPP_HAS_EXCEPTIONS || !_LIBCPP_HAS_RTTI |
| # undef _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION |
| # undef _LIBCPP_AVAILABILITY_INIT_PRIMARY_EXCEPTION |
| # define _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION 0 |
| # define _LIBCPP_AVAILABILITY_INIT_PRIMARY_EXCEPTION |
| #endif |
|
|
| #endif |
|
|