-
Notifications
You must be signed in to change notification settings - Fork 1.6k
llvm-project Mega-Update #4263
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
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 hidden or 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.
…upstream" section to the "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
mainso 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
FAILlines. I explicitly mentionSKIPPEDwhen I mean that.main.litrequire us to add these lines tolit.site.cfg.infor all of our test suites, otherwise they will completely fail to run.ADDITIONAL_COMPILE_FLAGSshould be a space-separated list llvm/llvm-project#73541 we need to useParserKind.SPACE_LISThere.ADDITIONAL_COMPILE_FLAGS, useTEST_MEOW_DIAGNOSTIC_IGNOREDsparingly llvm/llvm-project#75317 requires us to parseADDITIONAL_COMPILE_FLAGS(feature)and addgcc-style-warningsandcl-style-warnings. This replaces theclfeature - as far as I can tell, it was unused and isn't present upstream.has-64-bit-atomicstoDEFAULT_FEATURESas we always supportstd::atomic_uint64_t.float_h.pass.cppwas renamed tofloat_h.compile.pass.cppby llvm/llvm-project@dafeb97.std.ADDITIONAL_COMPILE_FLAGSand_Array_iteratorsections have either been fixed upstream or are affected by different issues now.default_initializable.compile.pass.cppnow fails for both compilers for the same reason.sys_timeandlocal_timeis bogus llvm/llvm-project#73849.nasty_char_traits::moveis incompatible withconstexprllvm/llvm-project#74221.overload_compare_iteratordoesn't support its claimediterator_categoryllvm/llvm-project#74756.new_handlerbugs.cbeginshould 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.cppandrange.join.view/sentinel/eq.pass.cppwere listed under "libc++ doesn't implement P2770R0" as FAIL for all configurations.version.version.compile.pass.cppto the "known upstream" section and explain why.generate_feature_test_macro_components.pyworks fine now.-Wundefined-inlinefor Clang. I added:2because 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.txtis the source of truth for todos.rapid-cxx-test.hppno longer exists with any extension.string/wstringassumptions no longer appear to be an issue.I'm changingSKIPPEDtoFAIL, so we'll notice if anything starts passing.fs.op.remove_all/toctou.pass.cppwhich 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.cppwas marked asFAILfor all compilers above.constexprFor<cmath>And<cstdlib>.std/ranges/range.adaptors/range.join.viewwas renamed. I've added partially analyzed skips for the new paths, so we can simply drop the old paths.SKIPPEDfor// XFAIL: msvctests that compile for ARM and ARM64.SKIPPEDfor the big group of filesystem tests. I'm adding a comment that these tests areSKIPPEDdue to unknown differences between local test runs (where they fail normally) and Azure Pipelines (where they fail mysteriously in a way thatFAILdoesn't handle, and that doesn't result in usable test logs.)support.limits.general/.version.compile.pass.cppis malformed llvm/llvm-project#75577.test_format_context.hskips.to_address().month_day_lastfailure.llvm/llvm-project PRs
This relies on the following upstream test fixes:
LIBCPP_STATIC_ASSERTforstd::__mdspan_detailllvm/llvm-project#73436extents<char>toextents<signed char>llvm/llvm-project#73535ADDITIONAL_COMPILE_FLAGSshould be a space-separated list llvm/llvm-project#73541TestRunner.pyllvm/llvm-project#73996allocator<const T>llvm/llvm-project#73545doubletofloatllvm/llvm-project#74184mdspan::is_always_meow()should benoexcept", useLIBCPP_STATIC_ASSERTfornoexceptstrengthening llvm/llvm-project#74254<source_location>andmsvc_stdlib_force_include.hllvm/llvm-project#74266std::arrayiterators are pointers llvm/llvm-project#74430ranges::rotate_copyand its test llvm/llvm-project#74544TEST_SHORT_WCHARllvm/llvm-project#74958MaybePOCCAAllocatorto finally meet the allocator requirements llvm/llvm-project#74960static_casts llvm/llvm-project#74962views::splitandviews::lazy_splitshouldn't be range adaptor closures llvm/llvm-project#75266ADDITIONAL_COMPILE_FLAGS, useTEST_MEOW_DIAGNOSTIC_IGNOREDsparingly 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-comparewarnings #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_typervalues when necessary #4236string/vectoriterator subtraction andranges::is_permutation#4237<format>: Fix STL internal check when formatting empty strings #4243vectors with fancy pointers emitting STL internal checks in ranges algorithms #4244locale{nullptr}to compile #4245<chrono>: Makeformat()accept%Xand%EXfordurationandhh_mm_ss#4250allocate_shared()#4252sub_match <=> basic_stringwith 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_stringbufs in move assignment and allocator-extended construction #4239<ranges>: Fix truncation warnings and improve overflow check forrepeat_view#4255