Skip to content

Commit 6c47654

Browse files
Revert "[libc++] Remove the type_traits includes from limits and new"
type_traits doesn't need to include __type_traits/noexcept_move_assign_container.h, so there is no include cycle from <limits> or <new>. Restore their includes of type_traits to preserve compatibility. This reverts commit 2af6d79. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D154747
1 parent ffbc08d commit 6c47654

File tree

8 files changed

+24
-19
lines changed

8 files changed

+24
-19
lines changed

libcxx/docs/ReleaseNotes.rst

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,6 @@ Deprecations and Removals
9595

9696
- ``<algorithm>`` no longer includes ``<chrono>`` in any C++ version (it was previously included in C++17 and earlier).
9797

98-
- ``<limits>`` no longer includes ``<type_traits>`` in any C++ version (it was previously included in C++20 and earlier).
99-
100-
- ``<new>`` no longer includes ``<exception>`` or ``<type_traits>`` in any C++ version (they were previously included in C++20 and earlier).
101-
10298
- ``<string>`` no longer includes ``<vector>`` in any C++ version (it was previously included in C++20 and earlier).
10399

104100
- ``<string>``, ``<string_view>``, and ``<mutex>`` no longer include ``<functional>``

libcxx/include/limits

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -823,4 +823,8 @@ _LIBCPP_END_NAMESPACE_STD
823823

824824
_LIBCPP_POP_MACROS
825825

826+
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
827+
# include <type_traits>
828+
#endif
829+
826830
#endif // _LIBCPP_LIMITS

libcxx/include/new

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,4 +365,9 @@ inline constexpr size_t hardware_constructive_interference_size = __GCC_CONSTRUC
365365

366366
_LIBCPP_END_NAMESPACE_STD
367367

368+
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
369+
# include <exception>
370+
# include <type_traits>
371+
#endif
372+
368373
#endif // _LIBCPP_NEW

libcxx/test/libcxx/transitive_includes/cxx03.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,7 @@ latch limits
458458
latch ratio
459459
latch type_traits
460460
latch version
461+
limits type_traits
461462
limits version
462463
list algorithm
463464
list atomic
@@ -573,6 +574,8 @@ mutex typeinfo
573574
mutex version
574575
new cstddef
575576
new cstdlib
577+
new exception
578+
new type_traits
576579
new version
577580
numbers concepts
578581
numbers type_traits
@@ -639,7 +642,6 @@ ostream version
639642
queue compare
640643
queue concepts
641644
queue cstddef
642-
queue cstdint
643645
queue cstdlib
644646
queue deque
645647
queue functional
@@ -776,7 +778,6 @@ sstream version
776778
stack compare
777779
stack concepts
778780
stack cstddef
779-
stack cstdint
780781
stack deque
781782
stack functional
782783
stack initializer_list
@@ -939,7 +940,6 @@ valarray algorithm
939940
valarray cmath
940941
valarray concepts
941942
valarray cstddef
942-
valarray cstdint
943943
valarray cstdlib
944944
valarray cstring
945945
valarray functional

libcxx/test/libcxx/transitive_includes/cxx11.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,7 @@ latch limits
458458
latch ratio
459459
latch type_traits
460460
latch version
461+
limits type_traits
461462
limits version
462463
list algorithm
463464
list atomic
@@ -574,6 +575,8 @@ mutex typeinfo
574575
mutex version
575576
new cstddef
576577
new cstdlib
578+
new exception
579+
new type_traits
577580
new version
578581
numbers concepts
579582
numbers type_traits
@@ -640,7 +643,6 @@ ostream version
640643
queue compare
641644
queue concepts
642645
queue cstddef
643-
queue cstdint
644646
queue cstdlib
645647
queue deque
646648
queue functional
@@ -777,7 +779,6 @@ sstream version
777779
stack compare
778780
stack concepts
779781
stack cstddef
780-
stack cstdint
781782
stack deque
782783
stack functional
783784
stack initializer_list
@@ -940,7 +941,6 @@ valarray algorithm
940941
valarray cmath
941942
valarray concepts
942943
valarray cstddef
943-
valarray cstdint
944944
valarray cstdlib
945945
valarray cstring
946946
valarray functional

libcxx/test/libcxx/transitive_includes/cxx14.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,7 @@ latch limits
460460
latch ratio
461461
latch type_traits
462462
latch version
463+
limits type_traits
463464
limits version
464465
list algorithm
465466
list atomic
@@ -576,6 +577,8 @@ mutex typeinfo
576577
mutex version
577578
new cstddef
578579
new cstdlib
580+
new exception
581+
new type_traits
579582
new version
580583
numbers concepts
581584
numbers type_traits
@@ -642,7 +645,6 @@ ostream version
642645
queue compare
643646
queue concepts
644647
queue cstddef
645-
queue cstdint
646648
queue cstdlib
647649
queue deque
648650
queue functional
@@ -779,7 +781,6 @@ sstream version
779781
stack compare
780782
stack concepts
781783
stack cstddef
782-
stack cstdint
783784
stack deque
784785
stack functional
785786
stack initializer_list
@@ -942,7 +943,6 @@ valarray algorithm
942943
valarray cmath
943944
valarray concepts
944945
valarray cstddef
945-
valarray cstdint
946946
valarray cstdlib
947947
valarray cstring
948948
valarray functional

libcxx/test/libcxx/transitive_includes/cxx17.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,7 @@ latch limits
460460
latch ratio
461461
latch type_traits
462462
latch version
463+
limits type_traits
463464
limits version
464465
list algorithm
465466
list atomic
@@ -576,6 +577,8 @@ mutex typeinfo
576577
mutex version
577578
new cstddef
578579
new cstdlib
580+
new exception
581+
new type_traits
579582
new version
580583
numbers concepts
581584
numbers type_traits
@@ -642,7 +645,6 @@ ostream version
642645
queue compare
643646
queue concepts
644647
queue cstddef
645-
queue cstdint
646648
queue cstdlib
647649
queue deque
648650
queue functional
@@ -779,7 +781,6 @@ sstream version
779781
stack compare
780782
stack concepts
781783
stack cstddef
782-
stack cstdint
783784
stack deque
784785
stack functional
785786
stack initializer_list
@@ -942,7 +943,6 @@ valarray algorithm
942943
valarray cmath
943944
valarray concepts
944945
valarray cstddef
945-
valarray cstdint
946946
valarray cstdlib
947947
valarray cstring
948948
valarray functional

libcxx/test/libcxx/transitive_includes/cxx20.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,7 @@ latch limits
466466
latch ratio
467467
latch type_traits
468468
latch version
469+
limits type_traits
469470
limits version
470471
list algorithm
471472
list atomic
@@ -582,6 +583,8 @@ mutex typeinfo
582583
mutex version
583584
new cstddef
584585
new cstdlib
586+
new exception
587+
new type_traits
585588
new version
586589
numbers concepts
587590
numbers type_traits
@@ -648,7 +651,6 @@ ostream version
648651
queue compare
649652
queue concepts
650653
queue cstddef
651-
queue cstdint
652654
queue cstdlib
653655
queue deque
654656
queue functional
@@ -785,7 +787,6 @@ sstream version
785787
stack compare
786788
stack concepts
787789
stack cstddef
788-
stack cstdint
789790
stack deque
790791
stack functional
791792
stack initializer_list
@@ -947,7 +948,6 @@ valarray algorithm
947948
valarray cmath
948949
valarray concepts
949950
valarray cstddef
950-
valarray cstdint
951951
valarray cstdlib
952952
valarray cstring
953953
valarray functional

0 commit comments

Comments
 (0)