[libc++] Header inclusion tests.

As mandated by the Standard's various synopses, e.g. [iterator.synopsis].
Searching the TeX source for '#include' is a good way to find all of these
mandates.

The new tests are all autogenerated by utils/generate_header_inclusion_tests.py.
I was SHOCKED by how many mandates there are, and how many of them
libc++ wasn't conforming with.

Differential Revision: https://reviews.llvm.org/D99309

GitOrigin-RevId: 2d0f1fa472a99dbb46735623363fe918feeda795
diff --git a/include/chrono b/include/chrono
index c8aab5d..d6a0de8 100644
--- a/include/chrono
+++ b/include/chrono
@@ -825,6 +825,7 @@
 
 #include <__config>
 #include <__availability>
+#include <compare>
 #include <ctime>
 #include <type_traits>
 #include <ratio>
diff --git a/include/deque b/include/deque
index 429dcab..607611c 100644
--- a/include/deque
+++ b/include/deque
@@ -162,6 +162,7 @@
 
 #include <__config>
 #include <__split_buffer>
+#include <compare>
 #include <type_traits>
 #include <initializer_list>
 #include <iterator>
diff --git a/include/filesystem b/include/filesystem
index dc4ac6d..fcfc637 100644
--- a/include/filesystem
+++ b/include/filesystem
@@ -234,6 +234,7 @@
 #include <cstddef>
 #include <cstdlib>
 #include <chrono>
+#include <compare>
 #include <iterator>
 #include <iosfwd>
 #include <memory>
diff --git a/include/iterator b/include/iterator
index c02f523..54ea2aa 100644
--- a/include/iterator
+++ b/include/iterator
@@ -418,6 +418,8 @@
 #include <iosfwd> // for forward declarations of vector and string.
 #include <__functional_base>
 #include <type_traits>
+#include <compare>
+#include <concepts>
 #include <cstddef>
 #include <initializer_list>
 #include <__memory/base.h>
diff --git a/include/map b/include/map
index 9c3e5e6..ddb596f 100644
--- a/include/map
+++ b/include/map
@@ -480,6 +480,8 @@
 #include <__config>
 #include <__tree>
 #include <__node_handle>
+#include <compare>
+#include <initializer_list>
 #include <iterator> // __libcpp_erase_if_container
 #include <memory>
 #include <utility>
diff --git a/include/memory b/include/memory
index 3fa0f2c..484dafe 100644
--- a/include/memory
+++ b/include/memory
@@ -668,6 +668,7 @@
 #include <__availability>
 #include <type_traits>
 #include <typeinfo>
+#include <compare>
 #include <cstddef>
 #include <cstdint>
 #include <new>
diff --git a/include/optional b/include/optional
index 97a0bbe..1de9c8a 100644
--- a/include/optional
+++ b/include/optional
@@ -150,6 +150,7 @@
 #include <__availability>
 #include <__debug>
 #include <__functional_base>
+#include <compare>
 #include <functional>
 #include <initializer_list>
 #include <new>
diff --git a/include/queue b/include/queue
index 05cc246..5091f67 100644
--- a/include/queue
+++ b/include/queue
@@ -179,6 +179,7 @@
 */
 
 #include <__config>
+#include <compare>
 #include <deque>
 #include <vector>
 #include <functional>
diff --git a/include/regex b/include/regex
index d78e488..466146d 100644
--- a/include/regex
+++ b/include/regex
@@ -765,6 +765,7 @@
 #include <__config>
 #include <stdexcept>
 #include <__locale>
+#include <compare>
 #include <initializer_list>
 #include <utility>
 #include <iterator>
diff --git a/include/set b/include/set
index a5cf399..11991af 100644
--- a/include/set
+++ b/include/set
@@ -428,7 +428,9 @@
 #include <__config>
 #include <__tree>
 #include <__node_handle>
+#include <compare>
 #include <functional>
+#include <initializer_list>
 #include <iterator> // __libcpp_erase_if_container
 #include <version>
 
diff --git a/include/string b/include/string
index 5f49b47..336922e 100644
--- a/include/string
+++ b/include/string
@@ -514,6 +514,7 @@
 */
 
 #include <__config>
+#include <compare>
 #include <string_view>
 #include <iosfwd>
 #include <cstring>
diff --git a/include/string_view b/include/string_view
index bc92dd5..3177fcd 100644
--- a/include/string_view
+++ b/include/string_view
@@ -182,6 +182,7 @@
 #include <__string>
 #include <iosfwd>
 #include <algorithm>
+#include <compare>
 #include <iterator>
 #include <limits>
 #include <stdexcept>
diff --git a/include/system_error b/include/system_error
index 784adcc..9f3d8ac 100644
--- a/include/system_error
+++ b/include/system_error
@@ -145,6 +145,7 @@
 #include <__config>
 #include <__errc>
 #include <__functional_base> // unary_function
+#include <compare>
 #include <stdexcept>
 #include <string>
 #include <type_traits>
diff --git a/include/tuple b/include/tuple
index 6e07892..61ff212 100644
--- a/include/tuple
+++ b/include/tuple
@@ -151,6 +151,7 @@
 
 #include <__config>
 #include <__tuple>
+#include <compare>
 #include <cstddef>
 #include <type_traits>
 #include <__functional_base>
diff --git a/include/typeindex b/include/typeindex
index bff1e65..a8d582e 100644
--- a/include/typeindex
+++ b/include/typeindex
@@ -47,6 +47,7 @@
 #include <__config>
 #include <typeinfo>
 #include <__functional_base>
+#include <compare>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
diff --git a/include/unordered_map b/include/unordered_map
index fc10c8b..d061e52 100644
--- a/include/unordered_map
+++ b/include/unordered_map
@@ -434,6 +434,7 @@
 #include <__config>
 #include <__hash_table>
 #include <__node_handle>
+#include <compare>
 #include <functional>
 #include <iterator> // __libcpp_erase_if_container
 #include <stdexcept>
diff --git a/include/unordered_set b/include/unordered_set
index 726e373..99943f3 100644
--- a/include/unordered_set
+++ b/include/unordered_set
@@ -389,6 +389,7 @@
 #include <__config>
 #include <__hash_table>
 #include <__node_handle>
+#include <compare>
 #include <functional>
 #include <iterator> // __libcpp_erase_if_container
 #include <version>
diff --git a/include/utility b/include/utility
index e81fcbe..bfde01c 100644
--- a/include/utility
+++ b/include/utility
@@ -201,6 +201,7 @@
 
 #include <__config>
 #include <__tuple>
+#include <compare>
 #include <type_traits>
 #include <initializer_list>
 #include <cstddef>
diff --git a/include/variant b/include/variant
index 4e3db1f..43b6aa7 100644
--- a/include/variant
+++ b/include/variant
@@ -203,6 +203,7 @@
 #include <__availability>
 #include <__tuple>
 #include <array>
+#include <compare>
 #include <exception>
 #include <functional>
 #include <initializer_list>
diff --git a/include/vector b/include/vector
index 4e1a46a..2cd243a 100644
--- a/include/vector
+++ b/include/vector
@@ -276,6 +276,7 @@
 #include <__bit_reference>
 #include <type_traits>
 #include <climits>
+#include <compare>
 #include <limits>
 #include <initializer_list>
 #include <memory>