-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
llvm-project Mega-Update #4263
Merged
StephanTLavavej
merged 45 commits into
microsoft:main
from
StephanTLavavej:update-libcxx
Dec 15, 2023
Merged
llvm-project Mega-Update #4263
StephanTLavavej
merged 45 commits into
microsoft:main
from
StephanTLavavej:update-libcxx
Dec 15, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
For LLVM-75317, parse `ADDITIONAL_COMPILE_FLAGS(feature)` and add 'gcc-style-warnings' and 'cl-style-warnings'. This replaces the 'cl' feature - as far as I can tell, it was unused and isn't present upstream.
…en deleted or moved out of std. I'm preserving the "ASAN runtime warns about an overlarge allocation" section in case we need to fill it with other tests. The tests in the ADDITIONAL_COMPILE_FLAGS and _Array_iterator sections have either been fixed upstream or are affected by different issues now.
…or the same reason.
…laimed iterator_category
LLVM-74534 was recently opened to implement P2602R2 "Poison Pills Are Too Toxic", so I'm discarding its entries that are duplicated for P2278R4 "cbegin should always return a constant iterator". I'm discarding the entries for DevCom-1638496 "C1XX doesn't properly reject int <=> unsigned" that are duplicated for DevCom-1626139 "compile-time NaN comparison", as I consider the former to be more likely to be fixed soon. range.join.view/end.pass.cpp and range.join.view/sentinel/eq.pass.cpp were listed under "libc++ doesn't implement P2770R0" as FAIL for all configurations.
…" section and explain why. generate_feature_test_macro_components.py works fine now.
This test is now blocked by -Wundefined-inline for Clang. I added `:2` because it's blocked by DevCom-1626139 "compile-time NaN comparison" for MSVC.
…ted", now we're missing P2833R2 "Freestanding Library: inout expected span".
…is still blocked by other macros including `__cpp_lib_ranges`.
…o "not analyzed". * Task VSO-593630 "<filesystem> Enable libcxx filesystem tests" was cut. * rapid-cxx-test.hpp no longer exists with any extension. * The error "STATIC TESTS DISABLED" no longer exists anywhere. * string/wstring assumptions no longer appear to be an issue. I'm changing SKIPPED to FAIL, so we'll notice if anything starts passing. I'm also consolidating fs.op.remove_all/toctou.pass.cpp which was in a "not analyzed" section.
… compilers above. In the section: libc++ has not implemented P2404R3: "Move-Only Types For Comparison Concepts"
…constexpr For <cmath> And <cstdlib>.
…ly accurate anymore.)
`std/ranges/range.adaptors/range.join.view` was renamed. I've added partially analyzed skips for the new paths, so we can simply drop the old paths.
cpplearner
reviewed
Dec 15, 2023
Co-authored-by: S. B. Tam <[email protected]>
Co-authored-by: S. B. Tam <[email protected]>
Co-authored-by: S. B. Tam <[email protected]>
dmitrykobets-msft
approved these changes
Dec 15, 2023
This was referenced Dec 15, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This updates our llvm-project submodule for the first time in almost a year (previously #3344 on 2023-01-21).
This revealed a lot of issues in our product code, most of which have been fixed by separate PRs that have landed in
main
so this PR can focus on updating the test suite. This also revealed a lot of issues in libc++'s tests (and a few in libc++'s product code!), most of which have been fixed upstream. See below for lists of commits in both repos, and thanks to everyone who's helped with this project!Overall, I've tried to fix as many tests as possible, and partially analyze the remaining failures to make future fixes easier.
Commits
When I talk about "skips", I'm usually referring to
FAIL
lines. I explicitly mentionSKIPPED
when I mean that.main
.lit
require us to add these lines tolit.site.cfg.in
for all of our test suites, otherwise they will completely fail to run.ADDITIONAL_COMPILE_FLAGS
should be a space-separated list llvm/llvm-project#73541 we need to useParserKind.SPACE_LIST
here.ADDITIONAL_COMPILE_FLAGS
, useTEST_MEOW_DIAGNOSTIC_IGNORED
sparingly llvm/llvm-project#75317 requires us to parseADDITIONAL_COMPILE_FLAGS(feature)
and addgcc-style-warnings
andcl-style-warnings
. This replaces thecl
feature - as far as I can tell, it was unused and isn't present upstream.has-64-bit-atomics
toDEFAULT_FEATURES
as we always supportstd::atomic_uint64_t
.float_h.pass.cpp
was renamed tofloat_h.compile.pass.cpp
by llvm/llvm-project@dafeb97.std
.ADDITIONAL_COMPILE_FLAGS
and_Array_iterator
sections have either been fixed upstream or are affected by different issues now.default_initializable.compile.pass.cpp
now fails for both compilers for the same reason.sys_time
andlocal_time
is bogus llvm/llvm-project#73849.nasty_char_traits::move
is incompatible withconstexpr
llvm/llvm-project#74221.overload_compare_iterator
doesn't support its claimediterator_category
llvm/llvm-project#74756.new_handler
bugs.cbegin
should always return a constant iterator".int <=> unsigned
" that are duplicated for DevCom-1626139 "compile-time NaN comparison", as I consider the former to be more likely to be fixed soon.range.join.view/end.pass.cpp
andrange.join.view/sentinel/eq.pass.cpp
were listed under "libc++ doesn't implement P2770R0" as FAIL for all configurations.version.version.compile.pass.cpp
to the "known upstream" section and explain why.generate_feature_test_macro_components.py
works fine now.-Wundefined-inline
for Clang. I added:2
because it's blocked by DevCom-1626139 "compile-time NaN comparison" for MSVC.std::expected
", now we're missing WG21-P2833R2 "Freestanding Library:inout expected span
".constexpr unique_ptr
", but this is still blocked by other macros including__cpp_lib_ranges
.<filesystem>
Enable libcxx filesystem tests" was cut. We don't care about that tracking issue -expected_results.txt
is the source of truth for todos.rapid-cxx-test.hpp
no longer exists with any extension.string
/wstring
assumptions no longer appear to be an issue.I'm changingSKIPPED
toFAIL
, so we'll notice if anything starts passing.fs.op.remove_all/toctou.pass.cpp
which was in a "not analyzed" section. (Given the name, that's likely the issue that we consider to be by design according to the Standard's lack of guarantees regarding filesystem races.)ranges_partial_sort_copy.pass.cpp
was marked asFAIL
for all compilers above.constexpr
For<cmath>
And<cstdlib>
.std/ranges/range.adaptors/range.join.view
was renamed. I've added partially analyzed skips for the new paths, so we can simply drop the old paths.SKIPPED
for// XFAIL: msvc
tests that compile for ARM and ARM64.SKIPPED
for the big group of filesystem tests. I'm adding a comment that these tests areSKIPPED
due to unknown differences between local test runs (where they fail normally) and Azure Pipelines (where they fail mysteriously in a way thatFAIL
doesn't handle, and that doesn't result in usable test logs.)support.limits.general/.version.compile.pass.cpp
is malformed llvm/llvm-project#75577.test_format_context.h
skips.to_address()
.month_day_last
failure.llvm/llvm-project PRs
This relies on the following upstream test fixes:
LIBCPP_STATIC_ASSERT
forstd::__mdspan_detail
llvm/llvm-project#73436extents<char>
toextents<signed char>
llvm/llvm-project#73535ADDITIONAL_COMPILE_FLAGS
should be a space-separated list llvm/llvm-project#73541TestRunner.py
llvm/llvm-project#73996allocator<const T>
llvm/llvm-project#73545double
tofloat
llvm/llvm-project#74184mdspan::is_always_meow()
should benoexcept
", useLIBCPP_STATIC_ASSERT
fornoexcept
strengthening llvm/llvm-project#74254<source_location>
andmsvc_stdlib_force_include.h
llvm/llvm-project#74266std::array
iterators are pointers llvm/llvm-project#74430ranges::rotate_copy
and its test llvm/llvm-project#74544TEST_SHORT_WCHAR
llvm/llvm-project#74958MaybePOCCAAllocator
to finally meet the allocator requirements llvm/llvm-project#74960static_cast
s llvm/llvm-project#74962views::split
andviews::lazy_split
shouldn't be range adaptor closures llvm/llvm-project#75266ADDITIONAL_COMPILE_FLAGS
, useTEST_MEOW_DIAGNOSTIC_IGNORED
sparingly llvm/llvm-project#75317microsoft/STL PRs
This relies on the following product code fixes:
<ranges>
: Fix a correctness-damaging typo inranges::to
#4218<sstream>
: Pass the correct size type to_Allocate_at_least_helper
#4219<mdspan>
: Avoid-Wsign-compare
warnings #4227<sstream>
: Avoid truncation warnings inbasic_stringbuf
's constructor #4228<chrono>
: Maketzdb_list
's internal ctor harder to unintentionally use #4229<mdspan>
: Construct mappings fromextents_type
rvalues when necessary #4236string
/vector
iterator subtraction andranges::is_permutation
#4237<format>
: Fix STL internal check when formatting empty strings #4243vector
s with fancy pointers emitting STL internal checks in ranges algorithms #4244locale{nullptr}
to compile #4245<chrono>
: Makeformat()
accept%X
and%EX
forduration
andhh_mm_ss
#4250allocate_shared()
#4252sub_match <=> basic_string
with custom traits/allocators #4253microsoft/STL PRs (In-Flight)
A few PRs are still in flight, so their affected tests are marked as known failures:
<sstream>
: Don't swapbasic_stringbuf
s in move assignment and allocator-extended construction #4239<ranges>
: Fix truncation warnings and improve overflow check forrepeat_view
#4255