Skip to content

Commit 2af6d79

Browse files
[libc++] Remove the type_traits includes from limits and new
type_traits is currently unable to include __type_traits/noexcept_move_assign_container.h, because it would cause several include cycles. type_traits -> __type_traits/noexcept_move_assign_container.h -> __memory/allocator_traits.h -> __memory/construct_at.h -> new -> exception -> type_traits type_traits -> __type_traits/noexcept_move_assign_container.h -> __memory/allocator_traits.h -> __memory/construct_at.h -> new -> type_traits type_traits -> __type_traits/noexcept_move_assign_container.h -> __memory/allocator_traits.h -> limits -> type_traits This is a problem for clang modules after the std mega module is broken up (D144322), because it becomes a module cycle which is a hard error. Unconditionally remove the type_traits includes from limits and new in all versions, and also remove the exception include from new. (These are already removed in C++23.) Reviewed By: ldionne, Mordante, #libc Differential Revision: https://reviews.llvm.org/D153214
1 parent e28b3ea commit 2af6d79

File tree

8 files changed

+19
-24
lines changed

8 files changed

+19
-24
lines changed

libcxx/docs/ReleaseNotes.rst

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

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

86+
- ``<limits>`` no longer includes ``<type_traits>`` in any C++ version (it was previously included in C++20 and earlier).
87+
88+
- ``<new>`` no longer includes ``<exception>`` or ``<type_traits>`` in any C++ version (they were previously included in C++20 and earlier).
89+
8690
- ``<string>`` no longer includes ``<vector>`` in any C++ version (it was previously included in C++20 and earlier).
8791

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

libcxx/include/limits

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -823,8 +823,4 @@ _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-
830826
#endif // _LIBCPP_LIMITS

libcxx/include/new

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,4 @@ 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-
373368
#endif // _LIBCPP_NEW

libcxx/test/libcxx/transitive_includes/cxx03.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,6 @@ latch limits
456456
latch ratio
457457
latch type_traits
458458
latch version
459-
limits type_traits
460459
limits version
461460
list algorithm
462461
list atomic
@@ -571,8 +570,6 @@ mutex typeinfo
571570
mutex version
572571
new cstddef
573572
new cstdlib
574-
new exception
575-
new type_traits
576573
new version
577574
numbers concepts
578575
numbers type_traits
@@ -639,6 +636,7 @@ ostream version
639636
queue compare
640637
queue concepts
641638
queue cstddef
639+
queue cstdint
642640
queue cstdlib
643641
queue deque
644642
queue functional
@@ -774,6 +772,7 @@ sstream version
774772
stack compare
775773
stack concepts
776774
stack cstddef
775+
stack cstdint
777776
stack deque
778777
stack functional
779778
stack initializer_list
@@ -936,6 +935,7 @@ valarray algorithm
936935
valarray cmath
937936
valarray concepts
938937
valarray cstddef
938+
valarray cstdint
939939
valarray cstdlib
940940
valarray cstring
941941
valarray functional

libcxx/test/libcxx/transitive_includes/cxx11.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,6 @@ latch limits
456456
latch ratio
457457
latch type_traits
458458
latch version
459-
limits type_traits
460459
limits version
461460
list algorithm
462461
list atomic
@@ -572,8 +571,6 @@ mutex typeinfo
572571
mutex version
573572
new cstddef
574573
new cstdlib
575-
new exception
576-
new type_traits
577574
new version
578575
numbers concepts
579576
numbers type_traits
@@ -640,6 +637,7 @@ ostream version
640637
queue compare
641638
queue concepts
642639
queue cstddef
640+
queue cstdint
643641
queue cstdlib
644642
queue deque
645643
queue functional
@@ -775,6 +773,7 @@ sstream version
775773
stack compare
776774
stack concepts
777775
stack cstddef
776+
stack cstdint
778777
stack deque
779778
stack functional
780779
stack initializer_list
@@ -937,6 +936,7 @@ valarray algorithm
937936
valarray cmath
938937
valarray concepts
939938
valarray cstddef
939+
valarray cstdint
940940
valarray cstdlib
941941
valarray cstring
942942
valarray functional

libcxx/test/libcxx/transitive_includes/cxx14.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,6 @@ latch limits
458458
latch ratio
459459
latch type_traits
460460
latch version
461-
limits type_traits
462461
limits version
463462
list algorithm
464463
list atomic
@@ -574,8 +573,6 @@ mutex typeinfo
574573
mutex version
575574
new cstddef
576575
new cstdlib
577-
new exception
578-
new type_traits
579576
new version
580577
numbers concepts
581578
numbers type_traits
@@ -642,6 +639,7 @@ ostream version
642639
queue compare
643640
queue concepts
644641
queue cstddef
642+
queue cstdint
645643
queue cstdlib
646644
queue deque
647645
queue functional
@@ -777,6 +775,7 @@ sstream version
777775
stack compare
778776
stack concepts
779777
stack cstddef
778+
stack cstdint
780779
stack deque
781780
stack functional
782781
stack initializer_list
@@ -939,6 +938,7 @@ valarray algorithm
939938
valarray cmath
940939
valarray concepts
941940
valarray cstddef
941+
valarray cstdint
942942
valarray cstdlib
943943
valarray cstring
944944
valarray functional

libcxx/test/libcxx/transitive_includes/cxx17.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,6 @@ latch limits
458458
latch ratio
459459
latch type_traits
460460
latch version
461-
limits type_traits
462461
limits version
463462
list algorithm
464463
list atomic
@@ -574,8 +573,6 @@ mutex typeinfo
574573
mutex version
575574
new cstddef
576575
new cstdlib
577-
new exception
578-
new type_traits
579576
new version
580577
numbers concepts
581578
numbers type_traits
@@ -642,6 +639,7 @@ ostream version
642639
queue compare
643640
queue concepts
644641
queue cstddef
642+
queue cstdint
645643
queue cstdlib
646644
queue deque
647645
queue functional
@@ -777,6 +775,7 @@ sstream version
777775
stack compare
778776
stack concepts
779777
stack cstddef
778+
stack cstdint
780779
stack deque
781780
stack functional
782781
stack initializer_list
@@ -939,6 +938,7 @@ valarray algorithm
939938
valarray cmath
940939
valarray concepts
941940
valarray cstddef
941+
valarray cstdint
942942
valarray cstdlib
943943
valarray cstring
944944
valarray functional

libcxx/test/libcxx/transitive_includes/cxx20.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,6 @@ latch limits
464464
latch ratio
465465
latch type_traits
466466
latch version
467-
limits type_traits
468467
limits version
469468
list algorithm
470469
list atomic
@@ -580,8 +579,6 @@ mutex typeinfo
580579
mutex version
581580
new cstddef
582581
new cstdlib
583-
new exception
584-
new type_traits
585582
new version
586583
numbers concepts
587584
numbers type_traits
@@ -648,6 +645,7 @@ ostream version
648645
queue compare
649646
queue concepts
650647
queue cstddef
648+
queue cstdint
651649
queue cstdlib
652650
queue deque
653651
queue functional
@@ -783,6 +781,7 @@ sstream version
783781
stack compare
784782
stack concepts
785783
stack cstddef
784+
stack cstdint
786785
stack deque
787786
stack functional
788787
stack initializer_list
@@ -944,6 +943,7 @@ valarray algorithm
944943
valarray cmath
945944
valarray concepts
946945
valarray cstddef
946+
valarray cstdint
947947
valarray cstdlib
948948
valarray cstring
949949
valarray functional

0 commit comments

Comments
 (0)