Revision tags: llvmorg-21-init, llvmorg-19.1.7 |
|
#
3972ed57 |
| 08-Jan-2025 |
Younan Zhang <zyn7109@gmail.com> |
Revert "[Clang] Implement CWG2369 "Ordering between constraints and substitution"" (#122130)
Unfortunately that breaks some code on Windows when lambdas come into play, as reported in https://github
Revert "[Clang] Implement CWG2369 "Ordering between constraints and substitution"" (#122130)
Unfortunately that breaks some code on Windows when lambdas come into play, as reported in https://github.com/llvm/llvm-project/pull/102857#issuecomment-2577861178
This reverts commit 96eced624e0f120155256033fdcb8342e7e58d6e.
show more ...
|
#
96eced62 |
| 05-Jan-2025 |
Younan Zhang <zyn7109@gmail.com> |
[Clang] Implement CWG2369 "Ordering between constraints and substitution" (#102857)
This patch partially implements CWG2369 for non-lambda-constrained functions.
Lambdas are left intact at this poi
[Clang] Implement CWG2369 "Ordering between constraints and substitution" (#102857)
This patch partially implements CWG2369 for non-lambda-constrained functions.
Lambdas are left intact at this point because we need extra work to correctly instantiate captures before the function instantiation.
As a premise of CWG2369, this patch also implements CWG2770 to ensure the function parameters are instantiated on demand.
Closes https://github.com/llvm/llvm-project/issues/54440
show more ...
|
Revision tags: llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3 |
|
#
00139ae1 |
| 09-Aug-2024 |
Matheus Izvekov <mizvekov@gmail.com> |
Revert "[clang] Reland: Instantiate concepts with sugared template arguments (#101782)" (#102551)
|
Revision tags: llvmorg-19.1.0-rc2 |
|
#
74837118 |
| 05-Aug-2024 |
Matheus Izvekov <mizvekov@gmail.com> |
[clang] Reland: Instantiate concepts with sugared template arguments (#101782)
|
Revision tags: llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1 |
|
#
42667563 |
| 27-Jan-2023 |
Erich Keane <erich.keane@intel.com> |
Fix recursive error for constraints depending on itself incorrectly
Fixes: #60323
https://github.com/llvm/llvm-project/issues/60323
The problem is that we are profiling the 'Expr' components direc
Fix recursive error for constraints depending on itself incorrectly
Fixes: #60323
https://github.com/llvm/llvm-project/issues/60323
The problem is that we are profiling the 'Expr' components directly, however when they contain an unresolved lookup, those canonicalize identically. The result was the two versions of calls to 'go' were canonicalized identically.
This patch fixes this by ensuring we consider the declaration the constraint is attached to, when possible. When not, we skip the diagnostic.
The result is that we are relaxing our diagnostic in some cases (Of which I couldn't come up with a reproducer), such that we might see overflows when evaluating constraints that depend on themselves in a way that they are not attached to a declaration directly, such as if they are nested requirements, though the hope is this won't be a problem, since the 'parent' named constraint would catch this. I'm hopeful that the 'worst case' is that we catch recursion 'later' in the process, instead of immediately.
show more ...
|
Revision tags: llvmorg-17-init |
|
#
12cb1cb3 |
| 17-Jan-2023 |
Erich Keane <erich.keane@intel.com> |
Revert "[clang] Instantiate concepts with sugared template arguments"
This reverts commit b8064374b217db061213c561ec8f3376681ff9c8.
Based on the report here: https://github.com/llvm/llvm-project/is
Revert "[clang] Instantiate concepts with sugared template arguments"
This reverts commit b8064374b217db061213c561ec8f3376681ff9c8.
Based on the report here: https://github.com/llvm/llvm-project/issues/59271
this produces a significant increase in memory use of the compiler and a large compile-time regression. This patch reverts this so that we don't branch for release with that issue.
show more ...
|
Revision tags: llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4 |
|
#
2cee2663 |
| 31-Oct-2022 |
Erich Keane <erich.keane@intel.com> |
[Concepts] Correctly handle failure when checking concepts recursively
Based on discussion on the core reflector, it was made clear that a concept that depends on itself should be a hard error, not
[Concepts] Correctly handle failure when checking concepts recursively
Based on discussion on the core reflector, it was made clear that a concept that depends on itself should be a hard error, not a constraint failure. This patch implements a stack of constraint-checks-in-progress to make sure we quit, rather than hitting stack-exhaustion.
Note that we DO need to be careful to make sure we still check constraints properly that are caused by a previous constraint, but not derived from (such as when a check causes us to check special member function generation), so we cannot use the existing logic to see if this is being instantiated.
This fixes https://github.com/llvm/llvm-project/issues/44304 and https://github.com/llvm/llvm-project/issues/50891.
Differential Revision: https://reviews.llvm.org/D136975
show more ...
|