Deleted Added
full compact
__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