When the std mega module is broken up (D144322), it exposes several missing includes and exports.
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Event Timeline
There seem to be a lot of false-positives from the module map change.
libcxx/include/__algorithm/copy.h | ||
---|---|---|
16 ↗ | (On Diff #525709) | This include is wrong. __iterator_with_data isn't used in this file. |
libcxx/include/__algorithm/copy_backward.h | ||
16 ↗ | (On Diff #525709) | Same here. |
libcxx/include/__algorithm/pstl_any_all_none_of.h | ||
20 | Same here. | |
libcxx/include/__algorithm/pstl_backend.h | ||
13 ↗ | (On Diff #525709) | This should be included through <__algorithm/pstl_backends/cpu_backend.h>. |
libcxx/include/__algorithm/pstl_fill.h | ||
21 | Same here. | |
libcxx/include/__algorithm/pstl_find.h | ||
21 | and here. | |
libcxx/include/__algorithm/sort.h | ||
16 ↗ | (On Diff #525709) | This is also never used in sort.h. |
libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h | ||
16 | bsd_locale_fallbacks.h should probably not be part of the module. This might not compile on all platforms. | |
libcxx/include/__mdspan/extents.h | ||
22 ↗ | (On Diff #525709) | <span> is already included. There shouldn't be a need to include a forward declaration. |
libcxx/include/__random/discrete_distribution.h | ||
14 | This is also never used here. |
A lot of these were added last week, it's possible things have changed. Let me go back through the ones you pointed out.
Review feedback, add a module for pstl_frontend_dispatch.h so that it can export __utility/forward.h
libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h | ||
---|---|---|
16 | It has to be part of the module because it's included by <locale>. But it doesn't compile on all platforms, so it's a textual header so that it only gets used if <locale> actually includes it. | |
libcxx/include/__mdspan/extents.h | ||
22 ↗ | (On Diff #525709) | That's what I thought, but I was still getting an error without it. Let me try again, I found an issue where some modules were exporting modules that they didn't include in the first place, and that seems to make clang mad. |
libcxx/include/__algorithm/pstl_backend.h | ||
---|---|---|
13 ↗ | (On Diff #525709) | Oh, <__algorithm/pstl_backends/cpu_backend.h> doesn't include <__algorithm/pstl_backends/cpu_backends/backend.h>. Nothing does. I'll ad it there. |
Still seeing some test failures.
libcxx/include/__algorithm/pstl_backend.h | ||
---|---|---|
13 ↗ | (On Diff #525709) | Err, typo in my find command. Each of the individual backends include <__algorithm/pstl_backends/cpu_backends/backend.h> but none of them export it. I guess they all need to. |
libcxx/include/__algorithm/sort.h | ||
16 ↗ | (On Diff #525709) | I think it is. /Volumes/SoftwareDevelopment/Projects/llvm-project/build/generic-modules/include/c++/v1/__algorithm/sort.h:715:11: error: definition of '_ProjectedPred' must be imported from module 'std_private_algorithm_1.make_projected' before it is required if (__comp(*--__last, *__first)) ^ /Volumes/SoftwareDevelopment/Projects/llvm-project/build/generic-modules/include/c++/v1/__algorithm/sort.h:855:8: note: in instantiation of function template specialization 'std::__introsort<std::_RangeAlgPolicy, std::_ProjectedPred<Less, Proj> &, T *, false>' requested here std::__introsort<_AlgPolicy, ^ /Volumes/SoftwareDevelopment/Projects/llvm-project/build/generic-modules/include/c++/v1/__algorithm/make_projected.h:31:8: note: definition here is not reachable struct _ProjectedPred { ^ |
I'm going to split this one up into a couple of reviews. Mostly it isn't includes that need to be added, but module exports.
Same here.