nico wrote:
This breaks building the libc++ module in the chromium build for me:
```
../../../../llvm-project/out/gn/bin/clang++ -MD -MF
clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std/module.pcm.d
-D__ARM_NEON__=1 -DCR_XCODE_BUILD=17B100
-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE
-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS
-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0
-DCR_LIBCXX_REVISION=91c45fc28459e814889633be985b698c5e8050b4 -DNDEBUG
-DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_LIBCPP_BUILDING_LIBRARY -I../..
-Iclang_arm64_for_rust_host_build_tools/gen -fno-delete-null-pointer-checks
-fno-strict-overflow -fno-ident -fno-math-errno -fno-strict-aliasing
-fstack-protector -fcolor-diagnostics -fmerge-all-constants
-fno-sized-deallocation -fcrash-diagnostics-dir=../clang-crashreports -mllvm
-instcombine-lower-dbg-declare=0 -mllvm -split-threshold-for-reg-with-hint=0
-ffp-contract=off -fcomplete-member-pointers --target=arm64-apple-macos
-mno-outline -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__=
-D__TIMESTAMP__= -ffile-compilation-dir=. -no-canonical-prefixes -Xclang
-fmodule-file-home-is-cwd -Xclang -fmodules-cache-path=/not_exist_dummy_dir
--warning-suppression-mappings=../../build/config/warning_suppression.txt
-ftrivial-auto-var-init=pattern -O2 -fno-omit-frame-pointer -g0 -isysroot
../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.1.sdk
-mmacos-version-min=12.0 -fsanitize=array-bounds -fsanitize-trap=array-bounds
-fvisibility=hidden -Wheader-hygiene -Wstring-conversion
-Wtautological-overlap-compare -fstrict-aliasing -Wundef -fPIC -Wall
-Wno-unused-variable -Wno-c++11-narrowing -Wno-unused-but-set-variable
-Wunguarded-availability -Wno-missing-field-initializers -Wno-unused-parameter
-Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration
-Wno-cast-function-type -Wno-thread-safety-reference-return
-Wno-nontrivial-memcall -Wno-uninitialized-const-pointer
-Wexit-time-destructors -Werror -Wno-exit-time-destructors -std=c++20
-Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++
-isystemgen/third_party/libc++/src/include
-isystem../../third_party/libc++abi/src/include -fvisibility-inlines-hidden
-Wno-invalid-offsetof -Wenum-compare-conditional -Wno-nullability-completeness
-fbuiltin-module-map
-fmodule-map-file=gen/third_party/libc++/src/include/module.modulemap
-fmodule-map-file=../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.1.sdk/usr/include/DarwinBasic.modulemap
-fmodule-map-file=../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.1.sdk/usr/include/DarwinFoundation1.modulemap
-fmodule-map-file=../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.1.sdk/usr/include/DarwinFoundation2.modulemap
-fmodule-map-file=../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.1.sdk/usr/include/DarwinFoundation3.modulemap
-fmodule-file=_AvailabilityInternal=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/_AvailabilityInternal/DarwinFoundation1.pcm
-fmodule-file=_Builtin_float=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/_Builtin_float/module.pcm
-fmodule-file=_Builtin_inttypes=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/_Builtin_inttypes/module.pcm
-fmodule-file=_Builtin_limits=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/_Builtin_limits/module.pcm
-fmodule-file=_Builtin_stdalign=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/_Builtin_stdalign/module.pcm
-fmodule-file=_Builtin_stdarg=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/_Builtin_stdarg/module.pcm
-fmodule-file=_Builtin_stddef=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/_Builtin_stddef/module.pcm
-fmodule-file=_Builtin_stdint=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/_Builtin_stdint/module.pcm
-fmodule-file=_DarwinFoundation1=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/_DarwinFoundation1/DarwinFoundation1.pcm
-fmodule-file=_DarwinFoundation2=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/_DarwinFoundation2/DarwinFoundation2.pcm
-fmodule-file=_DarwinFoundation3=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/_DarwinFoundation3/DarwinFoundation3.pcm
-fmodule-file=std_core=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std_core/module.pcm
-fmodule-file=std_ctype_h=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std_ctype_h/module.pcm
-fmodule-file=std_errno_h=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std_errno_h/module.pcm
-fmodule-file=std_fenv_h=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std_fenv_h/module.pcm
-fmodule-file=std_float_h=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std_float_h/module.pcm
-fmodule-file=std_inttypes_h=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std_inttypes_h/module.pcm
-fmodule-file=std_math_h=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std_math_h/module.pcm
-fmodule-file=std_private_mbstate_t=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std_private_mbstate_t/module.pcm
-fmodule-file=std_string_h=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std_string_h/module.pcm
-fmodule-file=std_uchar_h=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std_uchar_h/module.pcm
-fmodule-file=std_wctype_h=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std_wctype_h/module.pcm
-fmodule-file=xlocale=clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/xlocale/DarwinFoundation3.pcm
-fmodule-name=std -c -x c++ -Xclang -emit-module
gen/third_party/libc++/src/include/module.modulemap -o
clang_arm64_for_rust_host_build_tools/obj/buildtools/third_party/libc++/std/module.pcm
In module 'std_core' imported from
gen/third_party/libc++/src/include/__algorithm/comp.h:13:
gen/third_party/libc++/src/include/__type_traits/is_convertible.h:22:101:
error: definition of '__nat' must be imported from module
'std_core.type_traits.nat' before it is required
22 | struct _LIBCPP_NO_SPECIALIZATIONS is_convertible :
integral_constant<bool, __is_convertible(_T1, _T2)> {};
|
^
gen/third_party/libc++/src/include/__filesystem/path.h:150:37: note: in
instantiation of template class 'std::is_convertible<std::__nat,
std::input_iterator_tag>' requested here
150 | template <class _Iter, bool _IsIt =
__has_input_iterator_category<_Iter>::value, class = void>
| ^
gen/third_party/libc++/src/include/__filesystem/path.h:171:48: note: in
instantiation of default argument for '__is_pathable_iter<string_type>'
required here
171 | bool _IsIterT = !_IsCharIterT &&
__is_pathable_iter<_Tp>::value>
| ^~~~~~~~~~~~~~~~~~~~~~~
gen/third_party/libc++/src/include/__filesystem/path.h:384:59: note: in
instantiation of default argument for '__is_pathable<string_type, true, false>'
required here
384 | using _EnableIfPathable _LIBCPP_NODEBUG =
__enable_if_t<__is_pathable<_SourceOrIter>::value, _Tp>;
|
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
gen/third_party/libc++/src/include/__filesystem/path.h:412:36: note: in
instantiation of template type alias '_EnableIfPathable' requested here
412 | template <class _Source, class = _EnableIfPathable<_Source, void> >
| ^
gen/third_party/libc++/src/include/__filesystem/path.h:413:25: note: in
instantiation of default argument for 'path<string_type>' required here
413 | _LIBCPP_HIDE_FROM_ABI path(const _Source& __src, format =
format::auto_format) {
|
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
414 | _SourceCVT<_Source>::__append_source(__pn_, __src);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
415 | }
| ~
gen/third_party/libc++/src/include/__filesystem/path.h:799:57: note: while
substituting deduced template arguments into function template 'path' [with
_Source = string_type, $1 = (no value)]
799 | _LIBCPP_HIDE_FROM_ABI path root_name() const { return
string_type(__root_name()); }
| ^
gen/third_party/libc++/src/include/__type_traits/nat.h:20:8: note: definition
here is not reachable
20 | struct __nat {
| ^
1 error generated.
```
The diag is a bit poor in that it leaves out the
```
template <class _Tp, class _Up>
using __has_iterator_category_convertible_to _LIBCPP_NODEBUG =
is_convertible<__detected_or_t<__nat, __iterator_category,
iterator_traits<_Tp> >, _Up>;
```
bit which links the path.h note to `__nat`.
path.h does include __iterator/iterator_traits.h which does include
__type_traits/nat.h. So this might be a bug in the impl?
https://github.com/llvm/llvm-project/pull/121199
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits