Commit 7140868
authored
Fix main llvm 22 (#229)
* Fix Clang C++20 modules AST serialization bug with lambdas
Clang fails to deserialize the unevaluated generic lambda used in the
`has_completions` concept when building as a C++20 module. Extracted the
lambda into a namespace-scope `constexpr` variable template to bypass
the AST serialization crash.
Extracting it to a constexpr variable caused another set of bugs
with MSVC. therefore, lambda completely replaced with SFINAE style
'struct has_completions_impl'
* Relax template template parameter matching for Clang 22
Clang 22 rejects passing the constrained template `wrap` to an
unconstrained template template parameter (related to LLVM #182671).
Relaxed `wrap` and `bad` to use `template <typename S>` in
`exec-scope-concepts.test.cpp` to resolve the constraint violation.1 parent 9f5d1d7 commit 7140868
2 files changed
Lines changed: 16 additions & 5 deletions
File tree
- include/beman/execution/detail
- tests/beman/execution
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
8 | 14 | | |
9 | 15 | | |
10 | 16 | | |
| |||
16 | 22 | | |
17 | 23 | | |
18 | 24 | | |
| 25 | + | |
19 | 26 | | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
24 | 35 | | |
25 | 36 | | |
26 | 37 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| |||
0 commit comments