Skip to content
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

Update LLVM from upstream #2499

Merged
merged 33 commits into from
Feb 17, 2022
Merged

Update LLVM from upstream #2499

merged 33 commits into from
Feb 17, 2022

Conversation

CaseyCarter
Copy link
Member

@CaseyCarter CaseyCarter commented Jan 22, 2022

Includes fixes for a couple of dozen tiny bugs discovered by new and/or updated tests, and one large update to the skipped tests list / magic_comments used to filter libc++ tests by the internal test runner.

I recommend reviewing by commit.

Fixes #2001.

... if it's enabled, it oughta work. As detected by libc++ test `std/utilities/memory/storage.iterator/types.compile.pass.cpp`.
We somehow failed to implement this operation as updated by P1522.
... in `input_or_output_iterator` and `common_with`. The implementations seem to think this affects subsumption, despite that my brain compiler believes they should be equivalent.
We/I failed to notice that LWG changed my proposed resolution before approving. Also relocates `_Require_constant` next to its only remaining use in the `_Tiny_range` concept in `<ranges>`.
Overload resolution falls back on the base class operators when the derived operators disappear.
Since Clang 14 still doesn't support P0960. It was a nice experiment, but it's time to move on.
for `convertible_to`, `common_reference_with`, and `swappable_with` to test with lvalue arrays of volatile elements.
... and fix a bug in `join_view::iterator::_Check_dereference`.
... to support the `join_view` iterator converting constructor.
Test coverage in `libcxx/test/std/utilities/memory/pointer.conversion/to_address.pass.cpp`.
@CaseyCarter CaseyCarter added bug Something isn't working test Related to test code labels Jan 22, 2022
@CaseyCarter CaseyCarter requested a review from a team as a code owner January 22, 2022 01:46
@StephanTLavavej

This comment has been minimized.

@CaseyCarter

This comment has been minimized.

@StephanTLavavej

This comment has been minimized.

@CaseyCarter

This comment was marked as resolved.

@StephanTLavavej
Copy link
Member

Casey has mirrored this to MSVC-PR-375314 - any further commits need to be kept in sync.

@CaseyCarter

This comment was marked as resolved.

@StephanTLavavej

This comment was marked as resolved.

@statementreply

This comment was marked as resolved.

Copy link
Member

@barcharcraz barcharcraz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I'm not 100% convinced doing the metaprogramming to sidestep the bool comparison warning is better than just letting it fire, as it's probably not something the user intended, but.... the standard does allow boolean widths.

stl/inc/format Show resolved Hide resolved
stl/inc/xutility Show resolved Hide resolved
@CaseyCarter
Copy link
Member Author

Porting internally (again), please inform me of any changes (and please just don't).

@StephanTLavavej StephanTLavavej merged commit 4ca712b into microsoft:main Feb 17, 2022
@StephanTLavavej
Copy link
Member

Thanks for this massive update fixing a whole bunch of bugs! 😻 🐞 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working high priority Important! test Related to test code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

tests.py should map /std:c++latest to 'c++2b'
7 participants