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

Enable variant P0608R3 in C++17, update LLVM, overhaul variant/any/optional tests #4713

Merged
merged 30 commits into from
Jun 18, 2024
Merged
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4d8e263
Unconditionally implement P0608R3 Improving variant's Converting Cons…
StephanTLavavej May 31, 2024
2cbbbb2
llvm-project Micro-Update.
StephanTLavavej Jun 3, 2024
fb6dba1
cgmanifest.json: Update llvm-project commitHash.
StephanTLavavej May 31, 2024
07769cc
transform_llvm.sh: Extract script.
StephanTLavavej May 31, 2024
ff3b3f3
P0088R3_variant: Replace LLVM SOURCES with script output, no manual c…
StephanTLavavej May 31, 2024
3322f70
P0088R3_variant: Add namespaces, update run_test() calls.
StephanTLavavej May 31, 2024
91e5db4
P0088R3_variant: Handle std::hash, std::get specializations.
StephanTLavavej May 31, 2024
b3983d1
P0088R3_variant: Restore EDG and /clr workarounds.
StephanTLavavej May 31, 2024
393669f
P0088R3_variant: Add MSVC workaround, also affects EDG (not yet repor…
StephanTLavavej May 31, 2024
1762e86
P0088R3_variant: Add Clang workarounds, not yet investigated.
StephanTLavavej May 31, 2024
e0a056d
P0088R3_variant: Guard relops::three_way, visit::return_type with `_H…
StephanTLavavej May 31, 2024
1cb5798
P0088R3_variant: Guard P2637R3 Member visit.
StephanTLavavej May 31, 2024
db903ed
P0088R3_variant: Use usual_17_matrix.lst and is_permissive.
StephanTLavavej Jun 1, 2024
dbbd671
P0088R3_variant: Update instructions to record what we did.
StephanTLavavej May 31, 2024
5c8af5e
P0220R1_any: Cleanup instructions to reduce unnecessary divergence.
StephanTLavavej May 31, 2024
099bf0d
P0220R1_any: Replace LLVM SOURCES with script output, no manual chang…
StephanTLavavej Jun 2, 2024
20cdcde
P0220R1_any: Restore namespaces, update run_test() calls.
StephanTLavavej Jun 2, 2024
3e3b9f0
P0220R1_any: Silence warning C4640: construction of local static obje…
StephanTLavavej Jun 2, 2024
ea249f1
P0220R1_optional: Replace LLVM SOURCES with script output, no manual …
StephanTLavavej Jun 2, 2024
5e66fd7
P0220R1_optional: Add namespaces, update run_test() calls.
StephanTLavavej Jun 2, 2024
0ccc024
P0220R1_optional: Handle std::hash specialization.
StephanTLavavej Jun 2, 2024
e1e4bdb
P0220R1_optional: Restore EDG workarounds.
StephanTLavavej Jun 2, 2024
150f518
P0220R1_optional: Add/restore `_HAS_CXX20`/`_HAS_CXX23` guards.
StephanTLavavej Jun 2, 2024
7674011
P0220R1_optional: Update instructions to record what we did.
StephanTLavavej Jun 2, 2024
d280720
Drop unnecessary deprecation/removal escape hatches.
StephanTLavavej Jun 1, 2024
0663bdc
P0088R3_variant_msvc: Extract, part 1. Pure movement, no changes.
StephanTLavavej Jun 3, 2024
6a66454
P0088R3_variant_msvc: Extract, part 2. Transfer `<msvc_stdlib_force_i…
StephanTLavavej Jun 3, 2024
bc6e305
transform_llvm.sh: CRLF.
StephanTLavavej Jun 4, 2024
344ad18
P0088R3_variant: Avoid long line.
StephanTLavavej Jun 4, 2024
0f27f3d
P0220R1_any: Work around VSO-1664382 (/clr constinit).
StephanTLavavej Jun 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
P0088R3_variant: Update instructions to record what we did.
StephanTLavavej committed Jun 3, 2024
commit dbbd671e0792d88ec407f8eaac72f39188ebb5a7
7 changes: 5 additions & 2 deletions tests/std/tests/P0088R3_variant/test.cpp
Original file line number Diff line number Diff line change
@@ -21,8 +21,11 @@
// into a file.
// 3. Replicate the namespace structure from here into that file, use its content to replace everything between the
// "LLVM SOURCES BEGIN"/"END" delimiters, and ensure that `main` properly calls each of the `run_test` functions.
// 4. You'll need to fixup the specializations of std::hash in test/std/utilities/variant/variant.hash/hash.pass.cpp,
// and preserve the `// TRANSITION, P0608` conditionals if we still haven't implemented P0608.
// 4. Fix the specializations of std::hash and std::get by closing/reopening namespaces and qualifying types.
// 5. Restore the TRANSITION-commented workarounds.
// 6. Restore the _HAS_CXX20 guards for relops::three_way and visit::return_type.
// 7. Restore the guards for P2637R3 Member visit.
// 8. Restore the is_permissive workarounds.
//
// Yes, this is an awkward hand process; notably the required headers can change without notice. We should investigate
// running the libc++ tests directly in all of our configurations so we needn't replicate this subset of files.