Commit 070c0c8
[Clang] Fix a partial ordering bug involving CTAD injected template arguments (llvm#149782)
The synthesized deduction guides use injected template arguments for
distinguishment of explicit and implicit deduction guides.
In partial ordering, we may substitute into these injected types when
checking consistency. Properly substituting them needs the instantiated
class template specializations which isn't the case at that point. So
instead, we check their template specialization types.
No release note because I think we want a backport, after baking it for
a couple of days.
Fixes llvm#1346131 parent bb3fac0 commit 070c0c8
File tree
2 files changed
+34
-3
lines changed- clang
- lib/Sema
- test/SemaTemplate
2 files changed
+34
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5523 | 5523 | | |
5524 | 5524 | | |
5525 | 5525 | | |
| 5526 | + | |
| 5527 | + | |
| 5528 | + | |
| 5529 | + | |
| 5530 | + | |
| 5531 | + | |
| 5532 | + | |
| 5533 | + | |
| 5534 | + | |
5526 | 5535 | | |
5527 | 5536 | | |
5528 | 5537 | | |
| |||
5537 | 5546 | | |
5538 | 5547 | | |
5539 | 5548 | | |
5540 | | - | |
5541 | | - | |
5542 | | - | |
| 5549 | + | |
| 5550 | + | |
| 5551 | + | |
| 5552 | + | |
| 5553 | + | |
| 5554 | + | |
| 5555 | + | |
| 5556 | + | |
| 5557 | + | |
5543 | 5558 | | |
5544 | 5559 | | |
5545 | 5560 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
966 | 966 | | |
967 | 967 | | |
968 | 968 | | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
0 commit comments