[libcxx-commits] [libcxx] [libcxxabi] [libc++] Granularize <new> includes (PR #119964)
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Sat Dec 14 04:02:18 PST 2024
https://github.com/philnik777 created https://github.com/llvm/llvm-project/pull/119964
None
>From 8abbd55a6c1c28b9b688ba1f987188b7cc233ff1 Mon Sep 17 00:00:00 2001
From: Nikolas Klauser <nikolasklauser at berlin.de>
Date: Sat, 14 Dec 2024 13:01:50 +0100
Subject: [PATCH] [libc++] Granularize <new> includes
---
libcxx/include/__algorithm/inplace_merge.h | 1 -
libcxx/include/__algorithm/stable_partition.h | 1 -
libcxx/include/__algorithm/stable_sort.h | 1 -
libcxx/include/__exception/exception_ptr.h | 1 -
libcxx/include/__functional/function.h | 1 -
libcxx/include/__memory/allocator.h | 3 +-
.../include/__memory/builtin_new_allocator.h | 2 +-
libcxx/include/__memory/ranges_construct_at.h | 1 -
.../ranges_uninitialized_algorithms.h | 1 -
.../include/__memory/raw_storage_iterator.h | 1 -
libcxx/include/__memory/shared_ptr.h | 1 -
.../__memory/uninitialized_algorithms.h | 1 -
.../__memory/unique_temporary_buffer.h | 3 +-
.../__memory_resource/polymorphic_allocator.h | 3 +-
libcxx/include/__ostream/basic_ostream.h | 2 +-
libcxx/include/__pstl/backends/libdispatch.h | 2 +-
.../__pstl/cpu_algos/transform_reduce.h | 1 -
libcxx/include/__pstl/handle_exception.h | 2 +-
libcxx/include/__utility/no_destroy.h | 2 +-
libcxx/include/__utility/small_buffer.h | 3 +-
libcxx/include/future | 1 -
libcxx/include/locale | 2 +-
libcxx/include/map | 2 +-
libcxx/include/module.modulemap | 6 ++-
libcxx/include/optional | 1 -
libcxx/include/unordered_map | 2 +-
libcxx/include/valarray | 1 -
libcxx/include/variant | 1 -
.../test/libcxx/transitive_includes/cxx26.csv | 51 -------------------
libcxxabi/src/cxa_default_handlers.cpp | 1 +
30 files changed, 22 insertions(+), 79 deletions(-)
diff --git a/libcxx/include/__algorithm/inplace_merge.h b/libcxx/include/__algorithm/inplace_merge.h
index ad3fe6a7a505d9..e0ccdab993da12 100644
--- a/libcxx/include/__algorithm/inplace_merge.h
+++ b/libcxx/include/__algorithm/inplace_merge.h
@@ -29,7 +29,6 @@
#include <__memory/unique_temporary_buffer.h>
#include <__utility/move.h>
#include <__utility/pair.h>
-#include <new>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__algorithm/stable_partition.h b/libcxx/include/__algorithm/stable_partition.h
index 0438f589a39d7a..2ba7239a3a0397 100644
--- a/libcxx/include/__algorithm/stable_partition.h
+++ b/libcxx/include/__algorithm/stable_partition.h
@@ -22,7 +22,6 @@
#include <__type_traits/remove_cvref.h>
#include <__utility/move.h>
#include <__utility/pair.h>
-#include <new>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__algorithm/stable_sort.h b/libcxx/include/__algorithm/stable_sort.h
index 43f591ac02b01d..1111f5509bc384 100644
--- a/libcxx/include/__algorithm/stable_sort.h
+++ b/libcxx/include/__algorithm/stable_sort.h
@@ -24,7 +24,6 @@
#include <__type_traits/is_trivially_assignable.h>
#include <__utility/move.h>
#include <__utility/pair.h>
-#include <new>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__exception/exception_ptr.h b/libcxx/include/__exception/exception_ptr.h
index c43c005603dd7a..7df46a0e94dce0 100644
--- a/libcxx/include/__exception/exception_ptr.h
+++ b/libcxx/include/__exception/exception_ptr.h
@@ -16,7 +16,6 @@
#include <__memory/construct_at.h>
#include <__type_traits/decay.h>
#include <cstdlib>
-#include <new>
#include <typeinfo>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/__functional/function.h b/libcxx/include/__functional/function.h
index 543be05f10f330..06d3225a6e22d3 100644
--- a/libcxx/include/__functional/function.h
+++ b/libcxx/include/__functional/function.h
@@ -38,7 +38,6 @@
#include <__utility/piecewise_construct.h>
#include <__utility/swap.h>
#include <__verbose_abort>
-#include <new>
#include <tuple>
#include <typeinfo>
diff --git a/libcxx/include/__memory/allocator.h b/libcxx/include/__memory/allocator.h
index 1fcaf6402667e1..a7066885a978a6 100644
--- a/libcxx/include/__memory/allocator.h
+++ b/libcxx/include/__memory/allocator.h
@@ -16,13 +16,14 @@
#include <__memory/addressof.h>
#include <__memory/allocate_at_least.h>
#include <__memory/allocator_traits.h>
+#include <__new/allocate.h>
+#include <__new/exceptions.h>
#include <__type_traits/is_const.h>
#include <__type_traits/is_constant_evaluated.h>
#include <__type_traits/is_same.h>
#include <__type_traits/is_void.h>
#include <__type_traits/is_volatile.h>
#include <__utility/forward.h>
-#include <new>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__memory/builtin_new_allocator.h b/libcxx/include/__memory/builtin_new_allocator.h
index b1611b12bff03e..cde1a6025a9a70 100644
--- a/libcxx/include/__memory/builtin_new_allocator.h
+++ b/libcxx/include/__memory/builtin_new_allocator.h
@@ -12,7 +12,7 @@
#include <__config>
#include <__cstddef/size_t.h>
#include <__memory/unique_ptr.h>
-#include <new>
+#include <__new/allocate.h>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__memory/ranges_construct_at.h b/libcxx/include/__memory/ranges_construct_at.h
index b7523d4ba4b81b..35ed7965100038 100644
--- a/libcxx/include/__memory/ranges_construct_at.h
+++ b/libcxx/include/__memory/ranges_construct_at.h
@@ -22,7 +22,6 @@
#include <__utility/declval.h>
#include <__utility/forward.h>
#include <__utility/move.h>
-#include <new>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__memory/ranges_uninitialized_algorithms.h b/libcxx/include/__memory/ranges_uninitialized_algorithms.h
index 4815ac6e5de99e..57a7a4616826e5 100644
--- a/libcxx/include/__memory/ranges_uninitialized_algorithms.h
+++ b/libcxx/include/__memory/ranges_uninitialized_algorithms.h
@@ -25,7 +25,6 @@
#include <__ranges/dangling.h>
#include <__type_traits/remove_reference.h>
#include <__utility/move.h>
-#include <new>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__memory/raw_storage_iterator.h b/libcxx/include/__memory/raw_storage_iterator.h
index 2ee4c074d8d337..a81d93275f7c49 100644
--- a/libcxx/include/__memory/raw_storage_iterator.h
+++ b/libcxx/include/__memory/raw_storage_iterator.h
@@ -16,7 +16,6 @@
#include <__iterator/iterator_traits.h>
#include <__memory/addressof.h>
#include <__utility/move.h>
-#include <new>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__memory/shared_ptr.h b/libcxx/include/__memory/shared_ptr.h
index 4fa75af4ccc86d..97e4031499ed5e 100644
--- a/libcxx/include/__memory/shared_ptr.h
+++ b/libcxx/include/__memory/shared_ptr.h
@@ -57,7 +57,6 @@
#include <__utility/move.h>
#include <__utility/swap.h>
#include <__verbose_abort>
-#include <new>
#include <typeinfo>
#if _LIBCPP_HAS_ATOMIC_HEADER
# include <__atomic/memory_order.h>
diff --git a/libcxx/include/__memory/uninitialized_algorithms.h b/libcxx/include/__memory/uninitialized_algorithms.h
index 25d192c7718857..9587f01f64d58f 100644
--- a/libcxx/include/__memory/uninitialized_algorithms.h
+++ b/libcxx/include/__memory/uninitialized_algorithms.h
@@ -37,7 +37,6 @@
#include <__utility/exception_guard.h>
#include <__utility/move.h>
#include <__utility/pair.h>
-#include <new>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__memory/unique_temporary_buffer.h b/libcxx/include/__memory/unique_temporary_buffer.h
index 4f47c84e2f8dbe..ca6292338c0056 100644
--- a/libcxx/include/__memory/unique_temporary_buffer.h
+++ b/libcxx/include/__memory/unique_temporary_buffer.h
@@ -16,8 +16,9 @@
#include <__cstddef/ptrdiff_t.h>
#include <__memory/allocator.h>
#include <__memory/unique_ptr.h>
+#include <__new/allocate.h>
+#include <__new/global_new_delete.h>
#include <__type_traits/is_constant_evaluated.h>
-#include <new>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__memory_resource/polymorphic_allocator.h b/libcxx/include/__memory_resource/polymorphic_allocator.h
index 30fa5c2170d502..2dec9788852c2b 100644
--- a/libcxx/include/__memory_resource/polymorphic_allocator.h
+++ b/libcxx/include/__memory_resource/polymorphic_allocator.h
@@ -15,9 +15,10 @@
#include <__cstddef/max_align_t.h>
#include <__fwd/pair.h>
#include <__memory_resource/memory_resource.h>
+#include <__new/exceptions.h>
+#include <__new/placement_new_delete.h>
#include <__utility/exception_guard.h>
#include <limits>
-#include <new>
#include <tuple>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/__ostream/basic_ostream.h b/libcxx/include/__ostream/basic_ostream.h
index ad43c72a3c2eae..6d24171bc0d6cf 100644
--- a/libcxx/include/__ostream/basic_ostream.h
+++ b/libcxx/include/__ostream/basic_ostream.h
@@ -16,6 +16,7 @@
# include <__exception/operations.h>
# include <__memory/shared_ptr.h>
# include <__memory/unique_ptr.h>
+# include <__new/exceptions.h>
# include <__ostream/put_character_sequence.h>
# include <__system_error/error_code.h>
# include <__type_traits/conjunction.h>
@@ -26,7 +27,6 @@
# include <bitset>
# include <ios>
# include <locale>
-# include <new> // for __throw_bad_alloc
# include <streambuf>
# include <string_view>
diff --git a/libcxx/include/__pstl/backends/libdispatch.h b/libcxx/include/__pstl/backends/libdispatch.h
index 701367b505c8b7..4c63c4c8442074 100644
--- a/libcxx/include/__pstl/backends/libdispatch.h
+++ b/libcxx/include/__pstl/backends/libdispatch.h
@@ -23,6 +23,7 @@
#include <__memory/allocator.h>
#include <__memory/construct_at.h>
#include <__memory/unique_ptr.h>
+#include <__new/exceptions.h>
#include <__numeric/reduce.h>
#include <__pstl/backend_fwd.h>
#include <__pstl/cpu_algos/any_of.h>
@@ -38,7 +39,6 @@
#include <__utility/exception_guard.h>
#include <__utility/move.h>
#include <__utility/pair.h>
-#include <new>
#include <optional>
_LIBCPP_PUSH_MACROS
diff --git a/libcxx/include/__pstl/cpu_algos/transform_reduce.h b/libcxx/include/__pstl/cpu_algos/transform_reduce.h
index e9f622d832cd5c..abd9d42a6f2e65 100644
--- a/libcxx/include/__pstl/cpu_algos/transform_reduce.h
+++ b/libcxx/include/__pstl/cpu_algos/transform_reduce.h
@@ -20,7 +20,6 @@
#include <__type_traits/is_arithmetic.h>
#include <__type_traits/is_execution_policy.h>
#include <__utility/move.h>
-#include <new>
#include <optional>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/__pstl/handle_exception.h b/libcxx/include/__pstl/handle_exception.h
index 57dfcfde4554f8..3b5fca86902b0a 100644
--- a/libcxx/include/__pstl/handle_exception.h
+++ b/libcxx/include/__pstl/handle_exception.h
@@ -10,9 +10,9 @@
#define _LIBCPP___PSTL_HANDLE_EXCEPTION_H
#include <__config>
+#include <__new/exceptions.h>
#include <__utility/forward.h>
#include <__utility/move.h>
-#include <new> // __throw_bad_alloc
#include <optional>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/__utility/no_destroy.h b/libcxx/include/__utility/no_destroy.h
index 8edd194577d7c7..16f424ae119c4b 100644
--- a/libcxx/include/__utility/no_destroy.h
+++ b/libcxx/include/__utility/no_destroy.h
@@ -10,9 +10,9 @@
#define _LIBCPP___UTILITY_NO_DESTROY_H
#include <__config>
+#include <__new/placement_new_delete.h>
#include <__type_traits/is_constant_evaluated.h>
#include <__utility/forward.h>
-#include <new>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__utility/small_buffer.h b/libcxx/include/__utility/small_buffer.h
index 405c0aed459632..ff6e7e76f14f52 100644
--- a/libcxx/include/__utility/small_buffer.h
+++ b/libcxx/include/__utility/small_buffer.h
@@ -13,12 +13,13 @@
#include <__cstddef/byte.h>
#include <__cstddef/size_t.h>
#include <__memory/construct_at.h>
+#include <__new/allocate.h>
+#include <__new/launder.h>
#include <__type_traits/decay.h>
#include <__type_traits/is_trivially_constructible.h>
#include <__type_traits/is_trivially_destructible.h>
#include <__utility/exception_guard.h>
#include <__utility/forward.h>
-#include <new>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/future b/libcxx/include/future
index dacf2c10a1990b..3a612d80bc85c6 100644
--- a/libcxx/include/future
+++ b/libcxx/include/future
@@ -407,7 +407,6 @@ template <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>;
# include <__utility/forward.h>
# include <__utility/move.h>
# include <__utility/swap.h>
-# include <new>
# include <stdexcept>
# include <tuple>
# include <version>
diff --git a/libcxx/include/locale b/libcxx/include/locale
index 65b1200df061be..8421dc696106a6 100644
--- a/libcxx/include/locale
+++ b/libcxx/include/locale
@@ -207,6 +207,7 @@ template <class charT> class messages_byname;
# include <__locale>
# include <__locale_dir/pad_and_output.h>
# include <__memory/unique_ptr.h>
+# include <__new/exceptions.h>
# include <__type_traits/make_unsigned.h>
# include <cerrno>
# include <cstdio>
@@ -214,7 +215,6 @@ template <class charT> class messages_byname;
# include <ctime>
# include <ios>
# include <limits>
-# include <new>
# include <streambuf>
# include <version>
diff --git a/libcxx/include/map b/libcxx/include/map
index 4e964d2265b471..90f807f89bdcf6 100644
--- a/libcxx/include/map
+++ b/libcxx/include/map
@@ -591,6 +591,7 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20
# include <__memory/pointer_traits.h>
# include <__memory/unique_ptr.h>
# include <__memory_resource/polymorphic_allocator.h>
+# include <__new/launder.h>
# include <__node_handle>
# include <__ranges/concepts.h>
# include <__ranges/container_compatible_range.h>
@@ -604,7 +605,6 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20
# include <__utility/pair.h>
# include <__utility/piecewise_construct.h>
# include <__utility/swap.h>
-# include <new> // for std::launder
# include <stdexcept>
# include <tuple>
# include <version>
diff --git a/libcxx/include/module.modulemap b/libcxx/include/module.modulemap
index 8d862e9f9ba361..4d1f1a727cc3d9 100644
--- a/libcxx/include/module.modulemap
+++ b/libcxx/include/module.modulemap
@@ -1607,7 +1607,11 @@ module std [system] {
module allocate { header "__new/allocate.h" }
module destroying_delete_t { header "__new/destroying_delete_t.h" }
module exceptions { header "__new/exceptions.h" }
- module global_new_delete { header "__new/global_new_delete.h" }
+ module global_new_delete {
+ header "__new/global_new_delete.h"
+
+ export std.new.nothrow_t
+ }
module interference_size { header "__new/interference_size.h" }
module launder { header "__new/launder.h" }
module new_handler { header "__new/new_handler.h" }
diff --git a/libcxx/include/optional b/libcxx/include/optional
index b19c7a21aea372..1556b8b8fd942a 100644
--- a/libcxx/include/optional
+++ b/libcxx/include/optional
@@ -228,7 +228,6 @@ namespace std {
# include <__utility/swap.h>
# include <__verbose_abort>
# include <initializer_list>
-# include <new>
# include <version>
// standard-mandated includes
diff --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map
index 5d5979b28ff0e6..e55b7b7ef14036 100644
--- a/libcxx/include/unordered_map
+++ b/libcxx/include/unordered_map
@@ -602,6 +602,7 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
# include <__memory/pointer_traits.h>
# include <__memory/unique_ptr.h>
# include <__memory_resource/polymorphic_allocator.h>
+# include <__new/launder.h>
# include <__node_handle>
# include <__ranges/concepts.h>
# include <__ranges/container_compatible_range.h>
@@ -615,7 +616,6 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
# include <__type_traits/type_identity.h>
# include <__utility/forward.h>
# include <__utility/pair.h>
-# include <new> // launder
# include <stdexcept>
# include <tuple>
# include <version>
diff --git a/libcxx/include/valarray b/libcxx/include/valarray
index af916096b5ef9d..ef94dde9bc887c 100644
--- a/libcxx/include/valarray
+++ b/libcxx/include/valarray
@@ -364,7 +364,6 @@ template <class T> unspecified2 end(const valarray<T>& v);
# include <__utility/move.h>
# include <__utility/swap.h>
# include <cmath>
-# include <new>
# include <version>
// standard-mandated includes
diff --git a/libcxx/include/variant b/libcxx/include/variant
index 9006e7ca35b093..a139b9890508c2 100644
--- a/libcxx/include/variant
+++ b/libcxx/include/variant
@@ -268,7 +268,6 @@ namespace std {
# include <__verbose_abort>
# include <initializer_list>
# include <limits>
-# include <new>
# include <version>
// standard-mandated includes
diff --git a/libcxx/test/libcxx/transitive_includes/cxx26.csv b/libcxx/test/libcxx/transitive_includes/cxx26.csv
index cb48eb32c26b3c..00ab78e61a4576 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx26.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx26.csv
@@ -9,7 +9,6 @@ algorithm cwctype
algorithm initializer_list
algorithm iosfwd
algorithm limits
-algorithm new
algorithm optional
algorithm ratio
algorithm tuple
@@ -18,7 +17,6 @@ any cstdint
any cstring
any initializer_list
any limits
-any new
any typeinfo
any version
array cctype
@@ -58,7 +56,6 @@ bitset cwctype
bitset initializer_list
bitset iosfwd
bitset limits
-bitset new
bitset stdexcept
bitset string
bitset string_view
@@ -86,7 +83,6 @@ ccomplex iosfwd
ccomplex istream
ccomplex limits
ccomplex locale
-ccomplex new
ccomplex ratio
ccomplex sstream
ccomplex stdexcept
@@ -125,7 +121,6 @@ chrono iosfwd
chrono istream
chrono limits
chrono locale
-chrono new
chrono optional
chrono ratio
chrono sstream
@@ -153,7 +148,6 @@ codecvt cwctype
codecvt initializer_list
codecvt iosfwd
codecvt limits
-codecvt new
codecvt stdexcept
codecvt string
codecvt string_view
@@ -184,7 +178,6 @@ complex iosfwd
complex istream
complex limits
complex locale
-complex new
complex ratio
complex sstream
complex stdexcept
@@ -203,7 +196,6 @@ condition_variable cstring
condition_variable ctime
condition_variable initializer_list
condition_variable limits
-condition_variable new
condition_variable ratio
condition_variable typeinfo
condition_variable version
@@ -235,7 +227,6 @@ ctgmath iosfwd
ctgmath istream
ctgmath limits
ctgmath locale
-ctgmath new
ctgmath ratio
ctgmath sstream
ctgmath stdexcept
@@ -256,13 +247,11 @@ deque cwchar
deque cwctype
deque initializer_list
deque limits
-deque new
deque stdexcept
deque tuple
deque version
exception cstdint
exception cstdlib
-exception new
exception typeinfo
exception version
execution version
@@ -290,7 +279,6 @@ experimental/iterator iosfwd
experimental/iterator iterator
experimental/iterator limits
experimental/iterator locale
-experimental/iterator new
experimental/iterator ratio
experimental/iterator stdexcept
experimental/iterator streambuf
@@ -336,7 +324,6 @@ filesystem ios
filesystem iosfwd
filesystem limits
filesystem locale
-filesystem new
filesystem ratio
filesystem stdexcept
filesystem streambuf
@@ -354,7 +341,6 @@ flat_map cwchar
flat_map cwctype
flat_map initializer_list
flat_map limits
-flat_map new
flat_map optional
flat_map stdexcept
flat_map tuple
@@ -376,7 +362,6 @@ format cwctype
format initializer_list
format iosfwd
format limits
-format new
format optional
format stdexcept
format string
@@ -391,7 +376,6 @@ forward_list cwchar
forward_list cwctype
forward_list initializer_list
forward_list limits
-forward_list new
forward_list tuple
forward_list version
fstream bitset
@@ -415,7 +399,6 @@ fstream iosfwd
fstream istream
fstream limits
fstream locale
-fstream new
fstream ratio
fstream stdexcept
fstream streambuf
@@ -433,7 +416,6 @@ functional cwchar
functional cwctype
functional initializer_list
functional limits
-functional new
functional optional
functional stdexcept
functional tuple
@@ -460,7 +442,6 @@ future iosfwd
future istream
future limits
future locale
-future new
future ratio
future sstream
future stdexcept
@@ -489,7 +470,6 @@ iomanip ios
iomanip iosfwd
iomanip limits
iomanip locale
-iomanip new
iomanip ratio
iomanip stdexcept
iomanip streambuf
@@ -514,7 +494,6 @@ ios cwctype
ios initializer_list
ios iosfwd
ios limits
-ios new
ios ratio
ios stdexcept
ios string
@@ -546,7 +525,6 @@ iostream iosfwd
iostream istream
iostream limits
iostream locale
-iostream new
iostream optional
iostream ostream
iostream print
@@ -577,7 +555,6 @@ istream ios
istream iosfwd
istream limits
istream locale
-istream new
istream ratio
istream stdexcept
istream streambuf
@@ -597,7 +574,6 @@ iterator cwctype
iterator initializer_list
iterator iosfwd
iterator limits
-iterator new
iterator variant
iterator version
latch climits
@@ -616,7 +592,6 @@ list cwchar
list cwctype
list initializer_list
list limits
-list new
list tuple
list version
locale cctype
@@ -636,7 +611,6 @@ locale initializer_list
locale ios
locale iosfwd
locale limits
-locale new
locale ratio
locale stdexcept
locale streambuf
@@ -653,7 +627,6 @@ map cwchar
map cwctype
map initializer_list
map limits
-map new
map optional
map stdexcept
map tuple
@@ -675,7 +648,6 @@ memory cstdint
memory cstring
memory initializer_list
memory limits
-memory new
memory tuple
memory typeinfo
memory version
@@ -685,7 +657,6 @@ memory_resource compare
memory_resource cstdint
memory_resource ctime
memory_resource limits
-memory_resource new
memory_resource ratio
memory_resource tuple
memory_resource version
@@ -708,7 +679,6 @@ numeric cstring
numeric ctime
numeric initializer_list
numeric limits
-numeric new
numeric optional
numeric ratio
numeric tuple
@@ -718,7 +688,6 @@ optional cstdint
optional cstring
optional initializer_list
optional limits
-optional new
optional version
ostream array
ostream bitset
@@ -742,7 +711,6 @@ ostream ios
ostream iosfwd
ostream limits
ostream locale
-ostream new
ostream optional
ostream print
ostream ratio
@@ -771,7 +739,6 @@ print format
print initializer_list
print iosfwd
print limits
-print new
print optional
print stdexcept
print string
@@ -796,7 +763,6 @@ queue deque
queue initializer_list
queue iosfwd
queue limits
-queue new
queue stdexcept
queue string
queue string_view
@@ -817,7 +783,6 @@ random cwctype
random initializer_list
random iosfwd
random limits
-random new
random numeric
random optional
random ratio
@@ -838,7 +803,6 @@ ranges initializer_list
ranges iosfwd
ranges iterator
ranges limits
-ranges new
ranges optional
ranges span
ranges stdexcept
@@ -865,7 +829,6 @@ regex deque
regex initializer_list
regex iosfwd
regex limits
-regex new
regex stdexcept
regex string
regex string_view
@@ -893,7 +856,6 @@ set cwchar
set cwctype
set initializer_list
set limits
-set new
set optional
set tuple
set version
@@ -930,7 +892,6 @@ sstream iosfwd
sstream istream
sstream limits
sstream locale
-sstream new
sstream ratio
sstream stdexcept
sstream streambuf
@@ -948,7 +909,6 @@ stack cwctype
stack deque
stack initializer_list
stack limits
-stack new
stack stdexcept
stack tuple
stack version
@@ -977,7 +937,6 @@ streambuf initializer_list
streambuf ios
streambuf iosfwd
streambuf limits
-streambuf new
streambuf ratio
streambuf stdexcept
streambuf string
@@ -996,7 +955,6 @@ string cwctype
string initializer_list
string iosfwd
string limits
-string new
string stdexcept
string string_view
string tuple
@@ -1033,7 +991,6 @@ strstream iosfwd
strstream istream
strstream limits
strstream locale
-strstream new
strstream ratio
strstream stdexcept
strstream streambuf
@@ -1065,7 +1022,6 @@ syncstream iosfwd
syncstream limits
syncstream locale
syncstream map
-syncstream new
syncstream optional
syncstream ostream
syncstream print
@@ -1090,7 +1046,6 @@ system_error cwctype
system_error initializer_list
system_error iosfwd
system_error limits
-system_error new
system_error stdexcept
system_error string
system_error string_view
@@ -1118,7 +1073,6 @@ thread iosfwd
thread istream
thread limits
thread locale
-thread new
thread ratio
thread sstream
thread stdexcept
@@ -1146,7 +1100,6 @@ unordered_map cstdint
unordered_map cstring
unordered_map initializer_list
unordered_map limits
-unordered_map new
unordered_map optional
unordered_map stdexcept
unordered_map tuple
@@ -1156,7 +1109,6 @@ unordered_set cstdint
unordered_set cstring
unordered_set initializer_list
unordered_set limits
-unordered_set new
unordered_set optional
unordered_set tuple
unordered_set version
@@ -1169,14 +1121,12 @@ valarray cmath
valarray cstdint
valarray initializer_list
valarray limits
-valarray new
valarray version
variant compare
variant cstdint
variant cstring
variant initializer_list
variant limits
-variant new
variant version
vector array
vector cctype
@@ -1194,7 +1144,6 @@ vector cwctype
vector initializer_list
vector iosfwd
vector limits
-vector new
vector stdexcept
vector string
vector string_view
diff --git a/libcxxabi/src/cxa_default_handlers.cpp b/libcxxabi/src/cxa_default_handlers.cpp
index 52b1aacae9932f..b029982ea87c31 100644
--- a/libcxxabi/src/cxa_default_handlers.cpp
+++ b/libcxxabi/src/cxa_default_handlers.cpp
@@ -10,6 +10,7 @@
//===----------------------------------------------------------------------===//
#include <exception>
+#include <new>
#include "abort_message.h"
#include "cxxabi.h"
#include "cxa_handlers.h"
More information about the libcxx-commits
mailing list