* Allow Clang10 in the STL
This PR includes changes necessary to allow (but not require) clang 10 in the STL. It also includes test changes to allow the tests to pass given new clang warnings for deprecated behaviors, and an update to the LLVM reference to get similar changes that have been applied upstream to libc++ tests.
Details:
* In `<compare>`, remove workarounds for LLVM-41991 in Clang 10 RC1 fixed in RC2.
* In `<concepts>`, remove `_SILENCE_CLANG_CONCEPTS_MESSAGE`.
* In `<queue>` and `<stack>`, befriend only corresponding specializations of operator templates.
* In `<system_error>`, fix the `__cpp_constexpr_dynamic_alloc` implementation of `_Immortalize_memcpy_image` (which we apparently didn't review at all).
* In `<experimental/filesystem>`, apply a fix equivalent to the resolution of LWG-3244.
* Update `P0220R1_optional` from upstream.
* In `P0595R2_is_constant_evaluated`, silence Clang's warning for using `is_constant_evaluated` in a manifestly constant-evaluated context.
* In `P0896R4_ranges_iterator_machinery`, fix bogus test cases that were expecting VSO-1008447, silence "unused variable" warnings, and avoid taking advantage of too-lenient MSVC comparison rewrite behavior.
* In `P0896R4_ranges_range_machinery`, silence "unused variable" warning.
* In `P0898R3_concepts`, Remove workaround for LLVM-44627 in Clang 10 RC1 fixed in RC2.
* In `VSO_0000000_type_traits` and `tr1/type_traits5`, silence volatile function parameter deprecation warnings.
* In `tr1/condition_variable`, `tr1/regex1`, and `tr1/regex3`, remove unnecessary copy assignment operators that were prompting Clang warnings about the implicitly definition of a copy constructor for such a class being deprecated.
* In `tr1/csetjmp`, silence volatile increment deprecation warnings.
Skip new libc++ tests:
* Various `span` tests that expect `const_iterator` (libc++ doesn't yet implement LWG-3320)
* tests for the implementation of P1135R6 "The C++ Synchronization Library" which we do not yet implement
* Add tests/std.
* Update other files.
NOTICE.txt
Mention the LLVM Project, as its code appears
in tests/std/tests/P0220R1_optional/test.cpp and elsewhere.
azure-devops/enforce-clang-format.cmd
Process everything within tests. This includes libcxx, std, and tr1.
docs/cgmanifest.json
Update this file for Microsoft-internal purposes. (It records the commit
hashes of repos whose source code we've incorporated into our own repo.
For llvm-project, this is distinct from the submodule's current commit.)
tests/tr1/run.pl
Mention runbe.pl in lowercase, to match the file itself.
* Improve run.pl and runbe.pl comments.
* Remove delay comment in PR template because we've been merging PRs.
* Add readme.md note, and change "CI" to "automated testing" in checklist.
* Also remove statement from readme.md.
* README.md: New Working Draft N4835.
* Simplify pull_request_template.md.
We can remove the N/A guidance by updating
the two checkboxes that are commonly N/A.
Remove the "feature has been voted into the WP" checkbox.
We haven't had issues with people submitting non-Standard PRs,
and the README's Non-Goals section clearly explains
our acceptance criteria.
For the `_Ugly` checkbox, allow people to check it
if there aren't any product code changes at all.
Update the PR template to fix#117.
This adds a checkbox to the PR template mentioning
license discipline.
It clarifies the instructions regarding unchecked
and inapplicable boxes.
It fuses the "acceptance will be delayed" disclaimer
into the README checkbox.
This also rewraps the issue template (we usually wrap to 120,
but 80 is friendlier to the issue textbox) and improves the
wording by changing "Alternately" to "Alternatively".
This script runs clang-format on the sources, then runs git status --porcelain on the result, redirected to stderr. If any output goes to stderr, Azure Pipelines marks the build as failed, which enforces that no changes were made to the repo by the clang-format pass.
Resolves#88