aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Dionne <ldionne.2@gmail.com>2021-04-14 14:06:55 -0400
committerLouis Dionne <ldionne.2@gmail.com>2021-04-14 14:06:55 -0400
commit207d58bf31ab975203c6bb818ee4167a09c195ce (patch)
treee27e500aae17cac7eeea638fd01e44fec663593d
parente98060fa72ccb3c43d359dc5842f7d102dcf4378 (diff)
downloadllvm-207d58bf31ab975203c6bb818ee4167a09c195ce.zip
llvm-207d58bf31ab975203c6bb818ee4167a09c195ce.tar.gz
llvm-207d58bf31ab975203c6bb818ee4167a09c195ce.tar.bz2
[libc++] Move guards against std::auto_ptr outside of auto_ptr.h
This makes it clear that headers like <memory> which include auto_ptr only do that when compiling under an older Standard, or when the removed feature is explicitly requested.
-rw-r--r--libcxx/include/__memory/auto_ptr.h2
-rw-r--r--libcxx/include/__memory/shared_ptr.h5
-rw-r--r--libcxx/include/__memory/unique_ptr.h5
-rw-r--r--libcxx/include/memory5
4 files changed, 12 insertions, 5 deletions
diff --git a/libcxx/include/__memory/auto_ptr.h b/libcxx/include/__memory/auto_ptr.h
index d08c745..c12698e 100644
--- a/libcxx/include/__memory/auto_ptr.h
+++ b/libcxx/include/__memory/auto_ptr.h
@@ -21,7 +21,6 @@ _LIBCPP_PUSH_MACROS
_LIBCPP_BEGIN_NAMESPACE_STD
-#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
template <class _Tp>
struct _LIBCPP_DEPRECATED_IN_CXX11 auto_ptr_ref
{
@@ -78,7 +77,6 @@ class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 auto_ptr<void>
public:
typedef void element_type;
};
-#endif
_LIBCPP_END_NAMESPACE_STD
diff --git a/libcxx/include/__memory/shared_ptr.h b/libcxx/include/__memory/shared_ptr.h
index fae94be..8ded2ab 100644
--- a/libcxx/include/__memory/shared_ptr.h
+++ b/libcxx/include/__memory/shared_ptr.h
@@ -17,7 +17,6 @@
#include <__memory/allocation_guard.h>
#include <__memory/allocator.h>
#include <__memory/allocator_traits.h>
-#include <__memory/auto_ptr.h>
#include <__memory/compressed_pair.h>
#include <__memory/pointer_traits.h>
#include <__memory/unique_ptr.h>
@@ -31,6 +30,10 @@
# include <atomic>
#endif
+#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
+# include <__memory/auto_ptr.h>
+#endif
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
#endif
diff --git a/libcxx/include/__memory/unique_ptr.h b/libcxx/include/__memory/unique_ptr.h
index 355b259..5527eda 100644
--- a/libcxx/include/__memory/unique_ptr.h
+++ b/libcxx/include/__memory/unique_ptr.h
@@ -13,12 +13,15 @@
#include <__config>
#include <__functional_base> // std::less
#include <__memory/allocator_traits.h> // __pointer
-#include <__memory/auto_ptr.h>
#include <__memory/compressed_pair.h>
#include <cstddef>
#include <type_traits>
#include <utility>
+#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
+# include <__memory/auto_ptr.h>
+#endif
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
#endif
diff --git a/libcxx/include/memory b/libcxx/include/memory
index ae3c2ce..35c0a29 100644
--- a/libcxx/include/memory
+++ b/libcxx/include/memory
@@ -682,7 +682,6 @@ void* align(size_t alignment, size_t size, void*& ptr, size_t& space);
#include <__memory/allocation_guard.h>
#include <__memory/allocator.h>
#include <__memory/allocator_traits.h>
-#include <__memory/auto_ptr.h>
#include <__memory/compressed_pair.h>
#include <__memory/construct_at.h>
#include <__memory/pointer_safety.h>
@@ -694,6 +693,10 @@ void* align(size_t alignment, size_t size, void*& ptr, size_t& space);
#include <__memory/unique_ptr.h>
#include <version>
+#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
+# include <__memory/auto_ptr.h>
+#endif
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
#endif