__config (273066) | __config (277217) |
---|---|
1// -*- C++ -*- 2//===--------------------------- __config ---------------------------------===// 3// 4// The LLVM Compiler Infrastructure 5// 6// This file is dual licensed under the MIT and the University of Illinois Open 7// Source Licenses. See LICENSE.TXT for details. 8// --- 5 unchanged lines hidden (view full) --- 14#if !defined(_MSC_VER) || defined(__clang__) 15#pragma GCC system_header 16#endif 17 18#ifdef __GNUC__ 19#define _GNUC_VER (__GNUC__ * 100 + __GNUC_MINOR__) 20#endif 21 | 1// -*- C++ -*- 2//===--------------------------- __config ---------------------------------===// 3// 4// The LLVM Compiler Infrastructure 5// 6// This file is dual licensed under the MIT and the University of Illinois Open 7// Source Licenses. See LICENSE.TXT for details. 8// --- 5 unchanged lines hidden (view full) --- 14#if !defined(_MSC_VER) || defined(__clang__) 15#pragma GCC system_header 16#endif 17 18#ifdef __GNUC__ 19#define _GNUC_VER (__GNUC__ * 100 + __GNUC_MINOR__) 20#endif 21 |
22#if !_WIN32 23#include <unistd.h> 24#include <errno.h> // for ELAST on FreeBSD 25#endif 26 |
|
22#define _LIBCPP_VERSION 1101 23 24#define _LIBCPP_ABI_VERSION 1 25 26#define _LIBCPP_CONCAT1(_LIBCPP_X,_LIBCPP_Y) _LIBCPP_X##_LIBCPP_Y 27#define _LIBCPP_CONCAT(_LIBCPP_X,_LIBCPP_Y) _LIBCPP_CONCAT1(_LIBCPP_X,_LIBCPP_Y) 28 29#define _LIBCPP_NAMESPACE _LIBCPP_CONCAT(__,_LIBCPP_ABI_VERSION) --- 71 unchanged lines hidden (view full) --- 101# define _LIBCPP_LITTLE_ENDIAN 1 102# define _LIBCPP_BIG_ENDIAN 0 103# else 104# define _LIBCPP_LITTLE_ENDIAN 0 105# define _LIBCPP_BIG_ENDIAN 1 106# endif 107#endif // __sun__ 108 | 27#define _LIBCPP_VERSION 1101 28 29#define _LIBCPP_ABI_VERSION 1 30 31#define _LIBCPP_CONCAT1(_LIBCPP_X,_LIBCPP_Y) _LIBCPP_X##_LIBCPP_Y 32#define _LIBCPP_CONCAT(_LIBCPP_X,_LIBCPP_Y) _LIBCPP_CONCAT1(_LIBCPP_X,_LIBCPP_Y) 33 34#define _LIBCPP_NAMESPACE _LIBCPP_CONCAT(__,_LIBCPP_ABI_VERSION) --- 71 unchanged lines hidden (view full) --- 106# define _LIBCPP_LITTLE_ENDIAN 1 107# define _LIBCPP_BIG_ENDIAN 0 108# else 109# define _LIBCPP_LITTLE_ENDIAN 0 110# define _LIBCPP_BIG_ENDIAN 1 111# endif 112#endif // __sun__ 113 |
114#if defined(__native_client__) 115 // NaCl's sandbox (which PNaCl also runs in) doesn't allow filesystem access, 116 // including accesses to the special files under /dev. C++11's 117 // std::random_device is instead exposed through a NaCl syscall. 118# define _LIBCPP_USING_NACL_RANDOM 119#endif // defined(__native_client__) 120 |
|
109#if !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN) 110# include <endian.h> 111# if __BYTE_ORDER == __LITTLE_ENDIAN 112# define _LIBCPP_LITTLE_ENDIAN 1 113# define _LIBCPP_BIG_ENDIAN 0 114# elif __BYTE_ORDER == __BIG_ENDIAN 115# define _LIBCPP_LITTLE_ENDIAN 0 116# define _LIBCPP_BIG_ENDIAN 1 --- 72 unchanged lines hidden (view full) --- 189# define _LIBCPP_FUNC_VIS_ONLY _LIBCPP_FUNC_VIS 190#endif 191 192#ifndef _LIBCPP_INLINE_VISIBILITY 193#define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), __always_inline__)) 194#endif 195 196#ifndef _LIBCPP_EXCEPTION_ABI | 121#if !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN) 122# include <endian.h> 123# if __BYTE_ORDER == __LITTLE_ENDIAN 124# define _LIBCPP_LITTLE_ENDIAN 1 125# define _LIBCPP_BIG_ENDIAN 0 126# elif __BYTE_ORDER == __BIG_ENDIAN 127# define _LIBCPP_LITTLE_ENDIAN 0 128# define _LIBCPP_BIG_ENDIAN 1 --- 72 unchanged lines hidden (view full) --- 201# define _LIBCPP_FUNC_VIS_ONLY _LIBCPP_FUNC_VIS 202#endif 203 204#ifndef _LIBCPP_INLINE_VISIBILITY 205#define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), __always_inline__)) 206#endif 207 208#ifndef _LIBCPP_EXCEPTION_ABI |
197#define _LIBCPP_EXCEPTION_ABI _LIBCPP_TYPE_VIS | 209#define _LIBCPP_EXCEPTION_ABI __attribute__ ((__visibility__("default"))) |
198#endif 199 200#ifndef _LIBCPP_ALWAYS_INLINE 201#define _LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__)) 202#endif 203 204#if defined(__clang__) 205 | 210#endif 211 212#ifndef _LIBCPP_ALWAYS_INLINE 213#define _LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__)) 214#endif 215 216#if defined(__clang__) 217 |
218#if defined(__APPLE__) && !defined(__i386__) && !defined(__x86_64__) && \ 219 !defined(__arm__) 220#define _LIBCPP_ALTERNATE_STRING_LAYOUT 221#endif 222 |
|
206#if __has_feature(cxx_alignas) 207# define _ALIGNAS_TYPE(x) alignas(x) 208# define _ALIGNAS(x) alignas(x) 209#else 210# define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) 211# define _ALIGNAS(x) __attribute__((__aligned__(x))) 212#endif 213 214#if !__has_feature(cxx_alias_templates) 215#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES 216#endif 217 | 223#if __has_feature(cxx_alignas) 224# define _ALIGNAS_TYPE(x) alignas(x) 225# define _ALIGNAS(x) alignas(x) 226#else 227# define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) 228# define _ALIGNAS(x) __attribute__((__aligned__(x))) 229#endif 230 231#if !__has_feature(cxx_alias_templates) 232#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES 233#endif 234 |
218#ifndef __GXX_EXPERIMENTAL_CXX0X__ 219#ifdef __linux__ 220#define _LIBCPP_HAS_NO_UNICODE_CHARS 221#else | 235#if __cplusplus < 201103L |
222typedef __char16_t char16_t; 223typedef __char32_t char32_t; 224#endif | 236typedef __char16_t char16_t; 237typedef __char32_t char32_t; 238#endif |
225#endif | |
226 227#if !(__has_feature(cxx_exceptions)) 228#define _LIBCPP_NO_EXCEPTIONS 229#endif 230 231#if !(__has_feature(cxx_rtti)) 232#define _LIBCPP_NO_RTTI 233#endif --- 7 unchanged lines hidden (view full) --- 241#endif 242 243#if __has_feature(cxx_attributes) 244# define _LIBCPP_NORETURN [[noreturn]] 245#else 246# define _LIBCPP_NORETURN __attribute__ ((noreturn)) 247#endif 248 | 239 240#if !(__has_feature(cxx_exceptions)) 241#define _LIBCPP_NO_EXCEPTIONS 242#endif 243 244#if !(__has_feature(cxx_rtti)) 245#define _LIBCPP_NO_RTTI 246#endif --- 7 unchanged lines hidden (view full) --- 254#endif 255 256#if __has_feature(cxx_attributes) 257# define _LIBCPP_NORETURN [[noreturn]] 258#else 259# define _LIBCPP_NORETURN __attribute__ ((noreturn)) 260#endif 261 |
262#define _LIBCPP_UNUSED __attribute__((__unused__)) 263 |
|
249#if !(__has_feature(cxx_defaulted_functions)) 250#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS 251#endif // !(__has_feature(cxx_defaulted_functions)) 252 253#if !(__has_feature(cxx_deleted_functions)) 254#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS 255#endif // !(__has_feature(cxx_deleted_functions)) 256 --- 46 unchanged lines hidden (view full) --- 303#define _LIBCPP_HAS_OBJC_ARC_WEAK 304#define _LIBCPP_HAS_NO_STRONG_ENUMS 305#endif 306 307#if !(__has_feature(cxx_constexpr)) 308#define _LIBCPP_HAS_NO_CONSTEXPR 309#endif 310 | 264#if !(__has_feature(cxx_defaulted_functions)) 265#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS 266#endif // !(__has_feature(cxx_defaulted_functions)) 267 268#if !(__has_feature(cxx_deleted_functions)) 269#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS 270#endif // !(__has_feature(cxx_deleted_functions)) 271 --- 46 unchanged lines hidden (view full) --- 318#define _LIBCPP_HAS_OBJC_ARC_WEAK 319#define _LIBCPP_HAS_NO_STRONG_ENUMS 320#endif 321 322#if !(__has_feature(cxx_constexpr)) 323#define _LIBCPP_HAS_NO_CONSTEXPR 324#endif 325 |
326#if !(__has_feature(cxx_relaxed_constexpr)) 327#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR 328#endif 329 |
|
311#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L 312#if defined(__FreeBSD__) 313#define _LIBCPP_HAS_QUICK_EXIT 314#define _LIBCPP_HAS_C11_FEATURES | 330#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L 331#if defined(__FreeBSD__) 332#define _LIBCPP_HAS_QUICK_EXIT 333#define _LIBCPP_HAS_C11_FEATURES |
334#elif defined(__ANDROID__) 335#define _LIBCPP_HAS_QUICK_EXIT |
|
315#elif defined(__linux__) 316#include <features.h> 317#if __GLIBC_PREREQ(2, 15) 318#define _LIBCPP_HAS_QUICK_EXIT 319#endif 320#if __GLIBC_PREREQ(2, 17) 321#define _LIBCPP_HAS_C11_FEATURES 322#endif 323#endif 324#endif 325 326#if (__has_feature(cxx_noexcept)) 327# define _NOEXCEPT noexcept 328# define _NOEXCEPT_(x) noexcept(x) | 336#elif defined(__linux__) 337#include <features.h> 338#if __GLIBC_PREREQ(2, 15) 339#define _LIBCPP_HAS_QUICK_EXIT 340#endif 341#if __GLIBC_PREREQ(2, 17) 342#define _LIBCPP_HAS_C11_FEATURES 343#endif 344#endif 345#endif 346 347#if (__has_feature(cxx_noexcept)) 348# define _NOEXCEPT noexcept 349# define _NOEXCEPT_(x) noexcept(x) |
350# define _NOEXCEPT_OR_FALSE(x) noexcept(x) |
|
329#else 330# define _NOEXCEPT throw() 331# define _NOEXCEPT_(x) | 351#else 352# define _NOEXCEPT throw() 353# define _NOEXCEPT_(x) |
354# define _NOEXCEPT_OR_FALSE(x) false |
|
332#endif 333 334#if __has_feature(underlying_type) | 355#endif 356 357#if __has_feature(underlying_type) |
335# define _LIBCXX_UNDERLYING_TYPE(T) __underlying_type(T) | 358# define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T) |
336#endif 337 | 359#endif 360 |
361#if __has_feature(is_literal) 362# define _LIBCPP_IS_LITERAL(T) __is_literal(T) 363#endif 364 |
|
338// Inline namespaces are available in Clang regardless of C++ dialect. 339#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {inline namespace _LIBCPP_NAMESPACE { 340#define _LIBCPP_END_NAMESPACE_STD } } 341#define _VSTD std::_LIBCPP_NAMESPACE 342 343namespace std { 344 inline namespace _LIBCPP_NAMESPACE { 345 } 346} 347 | 365// Inline namespaces are available in Clang regardless of C++ dialect. 366#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {inline namespace _LIBCPP_NAMESPACE { 367#define _LIBCPP_END_NAMESPACE_STD } } 368#define _VSTD std::_LIBCPP_NAMESPACE 369 370namespace std { 371 inline namespace _LIBCPP_NAMESPACE { 372 } 373} 374 |
375#if !defined(_LIBCPP_HAS_NO_ASAN) && !__has_feature(address_sanitizer) 376#define _LIBCPP_HAS_NO_ASAN 377#endif 378 |
|
348#elif defined(__GNUC__) 349 350#define _ALIGNAS(x) __attribute__((__aligned__(x))) 351#define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) 352 353#define _LIBCPP_NORETURN __attribute__((noreturn)) 354 | 379#elif defined(__GNUC__) 380 381#define _ALIGNAS(x) __attribute__((__aligned__(x))) 382#define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) 383 384#define _LIBCPP_NORETURN __attribute__((noreturn)) 385 |
386#define _LIBCPP_UNUSED __attribute__((__unused__)) 387 388#if _GNUC_VER >= 407 389#define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T) 390#define _LIBCPP_IS_LITERAL(T) __is_literal_type(T) 391#endif 392 |
|
355#if !__EXCEPTIONS 356#define _LIBCPP_NO_EXCEPTIONS 357#endif 358 359#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES | 393#if !__EXCEPTIONS 394#define _LIBCPP_NO_EXCEPTIONS 395#endif 396 397#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES |
398 399// constexpr was added to GCC in 4.6. 400#if _GNUC_VER < 406 |
|
360#define _LIBCPP_HAS_NO_CONSTEXPR | 401#define _LIBCPP_HAS_NO_CONSTEXPR |
402// Can only use constexpr in c++11 mode. 403#elif !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L 404#define _LIBCPP_HAS_NO_CONSTEXPR 405#endif |
|
361 | 406 |
407// No version of GCC supports relaxed constexpr rules 408#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR 409 |
|
362#define _NOEXCEPT throw() 363#define _NOEXCEPT_(x) | 410#define _NOEXCEPT throw() 411#define _NOEXCEPT_(x) |
412#define _NOEXCEPT_OR_FALSE(x) false |
|
364 365#ifndef __GXX_EXPERIMENTAL_CXX0X__ 366 367#define _LIBCPP_HAS_NO_ADVANCED_SFINAE 368#define _LIBCPP_HAS_NO_DECLTYPE 369#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS 370#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS 371#define _LIBCPP_HAS_NO_NULLPTR --- 13 unchanged lines hidden (view full) --- 385#define _LIBCPP_HAS_NO_RVALUE_REFERENCES 386#endif 387 388#if _GNUC_VER < 403 389#define _LIBCPP_HAS_NO_STATIC_ASSERT 390#endif 391 392#if _GNUC_VER < 404 | 413 414#ifndef __GXX_EXPERIMENTAL_CXX0X__ 415 416#define _LIBCPP_HAS_NO_ADVANCED_SFINAE 417#define _LIBCPP_HAS_NO_DECLTYPE 418#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS 419#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS 420#define _LIBCPP_HAS_NO_NULLPTR --- 13 unchanged lines hidden (view full) --- 434#define _LIBCPP_HAS_NO_RVALUE_REFERENCES 435#endif 436 437#if _GNUC_VER < 403 438#define _LIBCPP_HAS_NO_STATIC_ASSERT 439#endif 440 441#if _GNUC_VER < 404 |
393#define _LIBCPP_HAS_NO_ADVANCED_SFINAE | |
394#define _LIBCPP_HAS_NO_DECLTYPE | 442#define _LIBCPP_HAS_NO_DECLTYPE |
395#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS | |
396#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS 397#define _LIBCPP_HAS_NO_UNICODE_CHARS 398#define _LIBCPP_HAS_NO_VARIADICS 399#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS 400#endif // _GNUC_VER < 404 401 402#if _GNUC_VER < 406 403#define _LIBCPP_HAS_NO_NULLPTR 404#endif 405 | 443#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS 444#define _LIBCPP_HAS_NO_UNICODE_CHARS 445#define _LIBCPP_HAS_NO_VARIADICS 446#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS 447#endif // _GNUC_VER < 404 448 449#if _GNUC_VER < 406 450#define _LIBCPP_HAS_NO_NULLPTR 451#endif 452 |
453#if _GNUC_VER < 407 454#define _LIBCPP_HAS_NO_ADVANCED_SFINAE 455#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS 456#endif 457 |
|
406#endif // __GXX_EXPERIMENTAL_CXX0X__ 407 408#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { namespace _LIBCPP_NAMESPACE { 409#define _LIBCPP_END_NAMESPACE_STD } } 410#define _VSTD std::_LIBCPP_NAMESPACE 411 412namespace std { 413namespace _LIBCPP_NAMESPACE { 414} 415using namespace _LIBCPP_NAMESPACE __attribute__((__strong__)); 416} 417 | 458#endif // __GXX_EXPERIMENTAL_CXX0X__ 459 460#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { namespace _LIBCPP_NAMESPACE { 461#define _LIBCPP_END_NAMESPACE_STD } } 462#define _VSTD std::_LIBCPP_NAMESPACE 463 464namespace std { 465namespace _LIBCPP_NAMESPACE { 466} 467using namespace _LIBCPP_NAMESPACE __attribute__((__strong__)); 468} 469 |
470#if !defined(_LIBCPP_HAS_NO_ASAN) && !defined(__SANITIZE_ADDRESS__) 471#define _LIBCPP_HAS_NO_ASAN 472#endif 473 |
|
418#elif defined(_LIBCPP_MSVC) 419 420#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES 421#define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER 422#define _LIBCPP_HAS_NO_CONSTEXPR | 474#elif defined(_LIBCPP_MSVC) 475 476#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES 477#define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER 478#define _LIBCPP_HAS_NO_CONSTEXPR |
479#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR |
|
423#define _LIBCPP_HAS_NO_UNICODE_CHARS 424#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS 425#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS 426#define __alignof__ __alignof 427#define _LIBCPP_NORETURN __declspec(noreturn) | 480#define _LIBCPP_HAS_NO_UNICODE_CHARS 481#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS 482#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS 483#define __alignof__ __alignof 484#define _LIBCPP_NORETURN __declspec(noreturn) |
485#define _LIBCPP_UNUSED |
|
428#define _ALIGNAS(x) __declspec(align(x)) 429#define _LIBCPP_HAS_NO_VARIADICS 430 | 486#define _ALIGNAS(x) __declspec(align(x)) 487#define _LIBCPP_HAS_NO_VARIADICS 488 |
431#define _NOEXCEPT throw() | 489#define _NOEXCEPT throw () |
432#define _NOEXCEPT_(x) | 490#define _NOEXCEPT_(x) |
491#define _NOEXCEPT_OR_FALSE(x) false |
|
433 434#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { 435#define _LIBCPP_END_NAMESPACE_STD } 436#define _VSTD std 437 438# define _LIBCPP_WEAK 439namespace std { 440} 441 | 492 493#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { 494#define _LIBCPP_END_NAMESPACE_STD } 495#define _VSTD std 496 497# define _LIBCPP_WEAK 498namespace std { 499} 500 |
501#define _LIBCPP_HAS_NO_ASAN 502 |
|
442#elif defined(__IBMCPP__) 443 444#define _ALIGNAS(x) __attribute__((__aligned__(x))) 445#define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) 446#define _ATTRIBUTE(x) __attribute__((x)) 447#define _LIBCPP_NORETURN __attribute__((noreturn)) | 503#elif defined(__IBMCPP__) 504 505#define _ALIGNAS(x) __attribute__((__aligned__(x))) 506#define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) 507#define _ATTRIBUTE(x) __attribute__((x)) 508#define _LIBCPP_NORETURN __attribute__((noreturn)) |
509#define _LIBCPP_UNUSED |
|
448 449#define _NOEXCEPT throw() 450#define _NOEXCEPT_(x) | 510 511#define _NOEXCEPT throw() 512#define _NOEXCEPT_(x) |
513#define _NOEXCEPT_OR_FALSE(x) false |
|
451 452#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES 453#define _LIBCPP_HAS_NO_ADVANCED_SFINAE 454#define _LIBCPP_HAS_NO_ALWAYS_INLINE_VARIADICS 455#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS 456#define _LIBCPP_HAS_NO_NULLPTR 457#define _LIBCPP_HAS_NO_UNICODE_CHARS | 514 515#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES 516#define _LIBCPP_HAS_NO_ADVANCED_SFINAE 517#define _LIBCPP_HAS_NO_ALWAYS_INLINE_VARIADICS 518#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS 519#define _LIBCPP_HAS_NO_NULLPTR 520#define _LIBCPP_HAS_NO_UNICODE_CHARS |
458#define _LIBCPP_HAS_NO_STRONG_ENUMS | |
459#define _LIBCPP_HAS_IS_BASE_OF 460 461#if defined(_AIX) 462#define __MULTILOCALE_API 463#endif 464 465#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {inline namespace _LIBCPP_NAMESPACE { 466#define _LIBCPP_END_NAMESPACE_STD } } 467#define _VSTD std::_LIBCPP_NAMESPACE 468 469namespace std { 470 inline namespace _LIBCPP_NAMESPACE { 471 } 472} 473 | 521#define _LIBCPP_HAS_IS_BASE_OF 522 523#if defined(_AIX) 524#define __MULTILOCALE_API 525#endif 526 527#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {inline namespace _LIBCPP_NAMESPACE { 528#define _LIBCPP_END_NAMESPACE_STD } } 529#define _VSTD std::_LIBCPP_NAMESPACE 530 531namespace std { 532 inline namespace _LIBCPP_NAMESPACE { 533 } 534} 535 |
474#endif // __clang__ || __GNUC___ || _MSC_VER || __IBMCPP__ | 536#define _LIBCPP_HAS_NO_ASAN |
475 | 537 |
538#endif // __clang__ || __GNUC__ || _MSC_VER || __IBMCPP__ 539 |
|
476#ifdef _LIBCPP_HAS_NO_UNICODE_CHARS 477typedef unsigned short char16_t; 478typedef unsigned int char32_t; 479#endif // _LIBCPP_HAS_NO_UNICODE_CHARS 480 | 540#ifdef _LIBCPP_HAS_NO_UNICODE_CHARS 541typedef unsigned short char16_t; 542typedef unsigned int char32_t; 543#endif // _LIBCPP_HAS_NO_UNICODE_CHARS 544 |
545#ifndef __SIZEOF_INT128__ 546#define _LIBCPP_HAS_NO_INT128 547#endif 548 |
|
481#ifdef _LIBCPP_HAS_NO_STATIC_ASSERT 482 483template <bool> struct __static_assert_test; 484template <> struct __static_assert_test<true> {}; 485template <unsigned> struct __static_assert_check {}; 486#define static_assert(__b, __m) \ 487 typedef __static_assert_check<sizeof(__static_assert_test<(__b)>)> \ 488 _LIBCPP_CONCAT(__t, __LINE__) --- 21 unchanged lines hidden (view full) --- 510#else 511#define _NOALIAS 512#endif 513 514#ifndef __has_feature 515#define __has_feature(__x) 0 516#endif 517 | 549#ifdef _LIBCPP_HAS_NO_STATIC_ASSERT 550 551template <bool> struct __static_assert_test; 552template <> struct __static_assert_test<true> {}; 553template <unsigned> struct __static_assert_check {}; 554#define static_assert(__b, __m) \ 555 typedef __static_assert_check<sizeof(__static_assert_test<(__b)>)> \ 556 _LIBCPP_CONCAT(__t, __LINE__) --- 21 unchanged lines hidden (view full) --- 578#else 579#define _NOALIAS 580#endif 581 582#ifndef __has_feature 583#define __has_feature(__x) 0 584#endif 585 |
518#if __has_feature(cxx_explicit_conversions) | 586#ifndef __has_builtin 587#define __has_builtin(__x) 0 588#endif 589 590#if __has_feature(cxx_explicit_conversions) || defined(__IBMCPP__) |
519# define _LIBCPP_EXPLICIT explicit 520#else 521# define _LIBCPP_EXPLICIT 522#endif 523 | 591# define _LIBCPP_EXPLICIT explicit 592#else 593# define _LIBCPP_EXPLICIT 594#endif 595 |
596#if !__has_builtin(__builtin_operator_new) || !__has_builtin(__builtin_operator_delete) 597# define _LIBCPP_HAS_NO_BUILTIN_OPERATOR_NEW_DELETE 598#endif 599 |
|
524#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS 525#define _LIBCPP_DECLARE_STRONG_ENUM(x) struct _LIBCPP_TYPE_VIS x { enum __lx 526#define _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(x) \ 527 __lx __v_; \ 528 _LIBCPP_ALWAYS_INLINE x(__lx __v) : __v_(__v) {} \ 529 _LIBCPP_ALWAYS_INLINE explicit x(int __v) : __v_(static_cast<__lx>(__v)) {} \ 530 _LIBCPP_ALWAYS_INLINE operator int() const {return __v_;} \ 531 }; --- 9 unchanged lines hidden (view full) --- 541# define _LIBCPP_DEBUG_LEVEL 2 542# else 543# error Supported values for _LIBCPP_DEBUG are 0 and 1 544# endif 545# define _LIBCPP_EXTERN_TEMPLATE(...) 546#endif 547 548#ifndef _LIBCPP_EXTERN_TEMPLATE | 600#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS 601#define _LIBCPP_DECLARE_STRONG_ENUM(x) struct _LIBCPP_TYPE_VIS x { enum __lx 602#define _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(x) \ 603 __lx __v_; \ 604 _LIBCPP_ALWAYS_INLINE x(__lx __v) : __v_(__v) {} \ 605 _LIBCPP_ALWAYS_INLINE explicit x(int __v) : __v_(static_cast<__lx>(__v)) {} \ 606 _LIBCPP_ALWAYS_INLINE operator int() const {return __v_;} \ 607 }; --- 9 unchanged lines hidden (view full) --- 617# define _LIBCPP_DEBUG_LEVEL 2 618# else 619# error Supported values for _LIBCPP_DEBUG are 0 and 1 620# endif 621# define _LIBCPP_EXTERN_TEMPLATE(...) 622#endif 623 624#ifndef _LIBCPP_EXTERN_TEMPLATE |
549#define _LIBCPP_EXTERN_TEMPLATE(...) | 625#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__; |
550#endif 551 552#ifndef _LIBCPP_EXTERN_TEMPLATE2 553#define _LIBCPP_EXTERN_TEMPLATE2(...) extern template __VA_ARGS__; 554#endif 555 | 626#endif 627 628#ifndef _LIBCPP_EXTERN_TEMPLATE2 629#define _LIBCPP_EXTERN_TEMPLATE2(...) extern template __VA_ARGS__; 630#endif 631 |
632#if defined(__APPLE__) && defined(__LP64__) && !defined(__x86_64__) 633#define _LIBCPP_NONUNIQUE_RTTI_BIT (1ULL << 63) 634#endif 635 |
|
556#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_WIN32) || defined(__sun__) || defined(__NetBSD__) 557#define _LIBCPP_LOCALE__L_EXTENSIONS 1 558#endif | 636#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_WIN32) || defined(__sun__) || defined(__NetBSD__) 637#define _LIBCPP_LOCALE__L_EXTENSIONS 1 638#endif |
639 |
|
559#ifdef __FreeBSD__ 560#define _DECLARE_C99_LDBL_MATH 1 561#endif 562 563#if defined(__APPLE__) || defined(__FreeBSD__) 564#define _LIBCPP_HAS_DEFAULTRUNELOCALE 565#endif 566 567#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__) 568#define _LIBCPP_WCTYPE_IS_MASK 569#endif 570 | 640#ifdef __FreeBSD__ 641#define _DECLARE_C99_LDBL_MATH 1 642#endif 643 644#if defined(__APPLE__) || defined(__FreeBSD__) 645#define _LIBCPP_HAS_DEFAULTRUNELOCALE 646#endif 647 648#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__) 649#define _LIBCPP_WCTYPE_IS_MASK 650#endif 651 |
571#if defined(__APPLE__) || defined(__FreeBSD__) 572#ifndef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 573# define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 0 | 652#if defined(ELAST) 653#define _LIBCPP_ELAST ELAST 654#elif defined(__linux__) 655#define _LIBCPP_ELAST 4095 656#elif defined(_NEWLIB_VERSION) 657#define _LIBCPP_ELAST __ELASTERROR 658#elif defined(__APPLE__) 659// Not _LIBCPP_ELAST needed on Apple 660#elif defined(__sun__) 661#define _LIBCPP_ELAST ESTALE 662#else 663// Warn here so that the person doing the libcxx port has an easier time: 664#warning This platform's ELAST hasn't been ported yet |
574#endif | 665#endif |
575#endif | |
576 577#ifndef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR | 666 667#ifndef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR |
578# define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 1 | 668# if defined(__FreeBSD__) 669// Making the std::pair copy constructor trivial breaks ABI compatibility with 670// earlier versions of libc++ shipped by FreeBSD, so turn it off by default. 671// See also http://svnweb.freebsd.org/changeset/base/261801 672# define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 0 673# else 674# define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 1 675# endif |
579#endif 580 581#ifndef _LIBCPP_STD_VER 582# if __cplusplus <= 201103L 583# define _LIBCPP_STD_VER 11 | 676#endif 677 678#ifndef _LIBCPP_STD_VER 679# if __cplusplus <= 201103L 680# define _LIBCPP_STD_VER 11 |
681# elif __cplusplus <= 201402L 682# define _LIBCPP_STD_VER 14 |
|
584# else | 683# else |
585# define _LIBCPP_STD_VER 13 // current year, or date of c++14 ratification | 684# define _LIBCPP_STD_VER 15 // current year, or date of c++17 ratification |
586# endif 587#endif // _LIBCPP_STD_VER 588 589#if _LIBCPP_STD_VER > 11 590#define _LIBCPP_DEPRECATED [[deprecated]] 591#else 592#define _LIBCPP_DEPRECATED 593#endif 594 595#if _LIBCPP_STD_VER <= 11 | 685# endif 686#endif // _LIBCPP_STD_VER 687 688#if _LIBCPP_STD_VER > 11 689#define _LIBCPP_DEPRECATED [[deprecated]] 690#else 691#define _LIBCPP_DEPRECATED 692#endif 693 694#if _LIBCPP_STD_VER <= 11 |
596#define _LIBCPP_CONSTEXPR_AFTER_CXX11 | |
597#define _LIBCPP_EXPLICIT_AFTER_CXX11 598#define _LIBCPP_DEPRECATED_AFTER_CXX11 599#else | 695#define _LIBCPP_EXPLICIT_AFTER_CXX11 696#define _LIBCPP_DEPRECATED_AFTER_CXX11 697#else |
600#define _LIBCPP_CONSTEXPR_AFTER_CXX11 constexpr | |
601#define _LIBCPP_EXPLICIT_AFTER_CXX11 explicit 602#define _LIBCPP_DEPRECATED_AFTER_CXX11 [[deprecated]] 603#endif 604 | 698#define _LIBCPP_EXPLICIT_AFTER_CXX11 explicit 699#define _LIBCPP_DEPRECATED_AFTER_CXX11 [[deprecated]] 700#endif 701 |
702#if _LIBCPP_STD_VER > 11 && !defined(_LIBCPP_HAS_NO_CXX14_CONSTEXPR) 703#define _LIBCPP_CONSTEXPR_AFTER_CXX11 constexpr 704#else 705#define _LIBCPP_CONSTEXPR_AFTER_CXX11 706#endif 707 708#ifndef _LIBCPP_HAS_NO_ASAN 709extern "C" void __sanitizer_annotate_contiguous_container( 710 const void *, const void *, const void *, const void *); 711#endif 712 |
|
605// Try to find out if RTTI is disabled. 606// g++ and cl.exe have RTTI on by default and define a macro when it is. 607// g++ only defines the macro in 4.3.2 and onwards. 608#if !defined(_LIBCPP_NO_RTTI) | 713// Try to find out if RTTI is disabled. 714// g++ and cl.exe have RTTI on by default and define a macro when it is. 715// g++ only defines the macro in 4.3.2 and onwards. 716#if !defined(_LIBCPP_NO_RTTI) |
609# if defined(__GNUG__) && (__GNUC__ >= 4 && \ 610 (__GNUC_MINOR__ >= 3 || __GNUC_PATCHLEVEL__ >= 2)) && !defined(__GXX_RTTI) | 717# if defined(__GNUG__) && ((__GNUC__ >= 5) || (__GNUC__ == 4 && \ 718 (__GNUC_MINOR__ >= 3 || __GNUC_PATCHLEVEL__ >= 2))) && !defined(__GXX_RTTI) |
611# define _LIBCPP_NO_RTTI 612# elif (defined(_MSC_VER) && !defined(__clang__)) && !defined(_CPPRTTI) 613# define _LIBCPP_NO_RTTI 614# endif 615#endif 616 617#ifndef _LIBCPP_WEAK 618# define _LIBCPP_WEAK __attribute__((__weak__)) 619#endif 620 | 719# define _LIBCPP_NO_RTTI 720# elif (defined(_MSC_VER) && !defined(__clang__)) && !defined(_CPPRTTI) 721# define _LIBCPP_NO_RTTI 722# endif 723#endif 724 725#ifndef _LIBCPP_WEAK 726# define _LIBCPP_WEAK __attribute__((__weak__)) 727#endif 728 |
729#if defined(_LIBCPP_HAS_NO_MONOTONIC_CLOCK) && !defined(_LIBCPP_HAS_NO_THREADS) 730# error _LIBCPP_HAS_NO_MONOTONIC_CLOCK may only be defined when \ 731 _LIBCPP_HAS_NO_THREADS is defined. 732#endif 733 |
|
621#endif // _LIBCPP_CONFIG | 734#endif // _LIBCPP_CONFIG |