|
@@ -514,10 +514,6 @@ typedef __char32_t char32_t;
|
|
|
# define _LIBCPP_NO_EXCEPTIONS
|
|
|
#endif
|
|
|
|
|
|
-#if !(__has_feature(cxx_strong_enums))
|
|
|
-#define _LIBCPP_HAS_NO_STRONG_ENUMS
|
|
|
-#endif
|
|
|
-
|
|
|
#if __has_feature(cxx_attributes)
|
|
|
# define _LIBCPP_NORETURN [[noreturn]]
|
|
|
#else
|
|
@@ -924,7 +920,7 @@ typedef unsigned int char32_t;
|
|
|
# define _LIBCPP_USING_IF_EXISTS
|
|
|
#endif
|
|
|
|
|
|
-#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS
|
|
|
+#ifdef _LIBCPP_CXX03_LANG
|
|
|
# define _LIBCPP_DECLARE_STRONG_ENUM(x) struct _LIBCPP_TYPE_VIS x { enum __lx
|
|
|
# define _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(x) \
|
|
|
__lx __v_; \
|
|
@@ -932,10 +928,10 @@ typedef unsigned int char32_t;
|
|
|
_LIBCPP_INLINE_VISIBILITY explicit x(int __v) : __v_(static_cast<__lx>(__v)) {} \
|
|
|
_LIBCPP_INLINE_VISIBILITY operator int() const {return __v_;} \
|
|
|
};
|
|
|
-#else // _LIBCPP_HAS_NO_STRONG_ENUMS
|
|
|
+#else // _LIBCPP_CXX03_LANG
|
|
|
# define _LIBCPP_DECLARE_STRONG_ENUM(x) enum class _LIBCPP_ENUM_VIS x
|
|
|
# define _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(x)
|
|
|
-#endif // _LIBCPP_HAS_NO_STRONG_ENUMS
|
|
|
+#endif // _LIBCPP_CXX03_LANG
|
|
|
|
|
|
// _LIBCPP_DEBUG potential values:
|
|
|
// - undefined: No assertions. This is the default.
|
|
@@ -1546,6 +1542,14 @@ extern "C" _LIBCPP_FUNC_VIS void __sanitizer_annotate_contiguous_container(
|
|
|
# define _LIBCPP_GCC_DIAGNOSTIC_IGNORED(str)
|
|
|
#endif
|
|
|
|
|
|
+#if defined(_AIX) && !defined(_LIBCPP_COMPILER_GCC)
|
|
|
+# define _LIBCPP_PACKED_BYTE_FOR_AIX _Pragma("pack(1)")
|
|
|
+# define _LIBCPP_PACKED_BYTE_FOR_AIX_END _Pragma("pack(pop)")
|
|
|
+#else
|
|
|
+# define _LIBCPP_PACKED_BYTE_FOR_AIX /* empty */
|
|
|
+# define _LIBCPP_PACKED_BYTE_FOR_AIX_END /* empty */
|
|
|
+#endif
|
|
|
+
|
|
|
#endif // __cplusplus
|
|
|
|
|
|
#endif // _LIBCPP_CONFIG
|