aboutsummaryrefslogtreecommitdiff
path: root/include/__config
diff options
context:
space:
mode:
Diffstat (limited to 'include/__config')
-rw-r--r--include/__config19
1 files changed, 14 insertions, 5 deletions
diff --git a/include/__config b/include/__config
index d0f95ef28342..a4dfc41736c9 100644
--- a/include/__config
+++ b/include/__config
@@ -461,7 +461,11 @@ namespace std {
#endif
#if __has_builtin(__builtin_launder)
-#define _LIBCPP_COMPILER_HAS_BUILTIN_LAUNDER
+#define _LIBCPP_COMPILER_HAS_BUILTIN_LAUNDER
+#endif
+
+#if !__is_identifier(__has_unique_object_representations)
+#define _LIBCPP_HAS_UNIQUE_OBJECT_REPRESENTATIONS
#endif
#elif defined(_LIBCPP_COMPILER_GCC)
@@ -547,7 +551,11 @@ namespace std {
#endif
#if _GNUC_VER >= 700
-#define _LIBCPP_COMPILER_HAS_BUILTIN_LAUNDER
+#define _LIBCPP_COMPILER_HAS_BUILTIN_LAUNDER
+#endif
+
+#if _GNUC_VER >= 700
+#define _LIBCPP_HAS_UNIQUE_OBJECT_REPRESENTATIONS
#endif
#elif defined(_LIBCPP_COMPILER_MSVC)
@@ -980,9 +988,10 @@ template <unsigned> struct __static_assert_check {};
#define _LIBCPP_NODISCARD_AFTER_CXX17
#endif
-// FIXME: Remove all usages of this macro once compilers catch up.
-#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606L)
-# define _LIBCPP_HAS_NO_INLINE_VARIABLES
+#if _LIBCPP_STD_VER > 14 && defined(__cpp_inline_variables) && (__cpp_inline_variables >= 201606L)
+# define _LIBCPP_INLINE_VAR inline
+#else
+# define _LIBCPP_INLINE_VAR
#endif
#ifdef _LIBCPP_HAS_NO_RVALUE_REFERENCES