[libcxx-commits] [libcxx] [libc++] Don't commit libcxx.imp (PR #89391)
via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Apr 19 07:45:43 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Louis Dionne (ldionne)
<details>
<summary>Changes</summary>
We can instead generate it on-the-fly when we install the headers. This reduces the amount of boilerplate we have to re-generate whenever we add, remove or relocate header files.
Fixes #<!-- -->88529
---
Patch is 77.76 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/89391.diff
5 Files Affected:
- (modified) libcxx/include/CMakeLists.txt (+15-1)
- (removed) libcxx/include/libcxx.imp (-855)
- (modified) libcxx/utils/CMakeLists.txt (-7)
- (modified) libcxx/utils/generate_iwyu_mapping.py (+15-9)
- (modified) libcxx/utils/libcxx/header_information.py (-1)
``````````diff
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index 4ecd834c5382ae..8269436a53e9a9 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -957,7 +957,6 @@ set(files
istream
iterator
latch
- libcxx.imp
limits
list
locale
@@ -1036,6 +1035,15 @@ foreach(f ${files})
list(APPEND _all_includes "${dst}")
endforeach()
+# Generate the IWYU mapping. This depends on all header files but it's also considered as an
+# "include" for dependency tracking.
+add_custom_command(OUTPUT "${LIBCXX_GENERATED_INCLUDE_DIR}/libcxx.imp"
+ COMMAND "${Python3_EXECUTABLE}" "${LIBCXX_SOURCE_DIR}/utils/generate_iwyu_mapping.py" "-o" "${LIBCXX_GENERATED_INCLUDE_DIR}/libcxx.imp"
+ DEPENDS ${_all_includes}
+ COMMENT "Generate the mapping file for include-what-you-use"
+)
+list(APPEND _all_includes "${LIBCXX_GENERATED_INCLUDE_DIR}/libcxx.imp")
+
add_custom_target(generate-cxx-headers ALL DEPENDS ${_all_includes})
add_library(cxx-headers INTERFACE)
@@ -1074,6 +1082,12 @@ if (LIBCXX_INSTALL_HEADERS)
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
COMPONENT cxx-headers)
+ # Install the generated IWYU file to the generic include dir.
+ install(FILES "${LIBCXX_GENERATED_INCLUDE_DIR}/libcxx.imp"
+ DESTINATION "${LIBCXX_INSTALL_INCLUDE_DIR}"
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+ COMPONENT cxx-headers)
+
if (NOT CMAKE_CONFIGURATION_TYPES)
add_custom_target(install-cxx-headers
DEPENDS cxx-headers
diff --git a/libcxx/include/libcxx.imp b/libcxx/include/libcxx.imp
deleted file mode 100644
index 1d12b6e8d86bba..00000000000000
--- a/libcxx/include/libcxx.imp
+++ /dev/null
@@ -1,855 +0,0 @@
-[
- { include: [ "<__algorithm/adjacent_find.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/all_of.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/any_of.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/binary_search.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/clamp.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/comp.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/comp_ref_type.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/copy_backward.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/copy_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/copy_move_common.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/copy_n.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/count.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/count_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/equal.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/equal_range.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/fill.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/fill_n.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/find.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/find_end.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/find_first_of.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/find_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/find_if_not.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/find_segment_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/fold.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/for_each.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/for_each_n.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/for_each_segment.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/generate.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/generate_n.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/half_positive.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/in_found_result.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/in_fun_result.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/in_in_out_result.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/in_in_result.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/in_out_out_result.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/in_out_result.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/includes.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/inplace_merge.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/is_heap.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/is_heap_until.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/is_partitioned.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/is_permutation.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/is_sorted.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/is_sorted_until.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/iter_swap.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/iterator_operations.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/lexicographical_compare.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/lexicographical_compare_three_way.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/lower_bound.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/make_heap.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/make_projected.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/max.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/max_element.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/merge.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/min.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/min_element.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/min_max_result.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/minmax.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/minmax_element.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/mismatch.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/move.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/move_backward.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/next_permutation.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/none_of.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/nth_element.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/partial_sort.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/partial_sort_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/partition.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/partition_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/partition_point.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pop_heap.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/prev_permutation.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_any_all_none_of.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_count.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_equal.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_fill.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_find.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_for_each.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_frontend_dispatch.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_generate.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_is_partitioned.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_merge.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_move.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_replace.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_rotate_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_sort.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_stable_sort.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/pstl_transform.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/push_heap.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_adjacent_find.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_all_of.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_any_of.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_binary_search.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_clamp.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_contains.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_contains_subrange.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_copy_backward.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_copy_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_copy_n.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_count.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_count_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_ends_with.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_equal.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_equal_range.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_fill.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_fill_n.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_find.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_find_end.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_find_first_of.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_find_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_find_if_not.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_for_each.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_for_each_n.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_generate.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_generate_n.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_includes.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_inplace_merge.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_is_heap.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_is_heap_until.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_is_partitioned.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_is_permutation.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_is_sorted.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_is_sorted_until.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_iterator_concept.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_lexicographical_compare.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_lower_bound.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_make_heap.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_max.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_max_element.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_merge.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_min.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_min_element.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_minmax.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_minmax_element.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_mismatch.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_move.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_move_backward.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_next_permutation.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_none_of.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_nth_element.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_partial_sort.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_partial_sort_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_partition.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_partition_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_partition_point.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_pop_heap.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_prev_permutation.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_push_heap.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_remove.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_remove_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_remove_copy_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_remove_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_replace.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_replace_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_replace_copy_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_replace_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_reverse.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_reverse_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_rotate.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_rotate_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_sample.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_search.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_search_n.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_set_difference.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_set_intersection.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_set_symmetric_difference.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_set_union.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_shuffle.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_sort.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_sort_heap.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_stable_partition.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_stable_sort.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_starts_with.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_swap_ranges.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_transform.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_unique.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_unique_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/ranges_upper_bound.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/remove.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/remove_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/remove_copy_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/remove_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/replace.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/replace_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/replace_copy_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/replace_if.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/reverse.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/reverse_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/rotate.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/rotate_copy.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/sample.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/search.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/search_n.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/set_difference.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/set_intersection.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/set_symmetric_difference.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/set_union.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/shift_left.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/shift_right.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/shuffle.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/sift_down.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/simd_utils.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/sort.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/sort_heap.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/stable_partition.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<__algorithm/stable_sort.h>", "private", "<algorithm>", "public" ] },
- { include: [ "<...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/89391
More information about the libcxx-commits
mailing list