diff options
author | Corentin Jabot <corentinjabot@gmail.com> | 2025-10-03 09:29:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-03 09:29:23 +0200 |
commit | e9972debc98ce5d00db47409248bbcf06fafaf73 (patch) | |
tree | da6c01a7cccc3652bac9dac8662bebae7df5a73d /libcxx/include/__algorithm/comp.h | |
parent | fa57ce980a77a0da222e56ca833ff2bc0a73623c (diff) | |
download | llvm-e9972debc98ce5d00db47409248bbcf06fafaf73.zip llvm-e9972debc98ce5d00db47409248bbcf06fafaf73.tar.gz llvm-e9972debc98ce5d00db47409248bbcf06fafaf73.tar.bz2 |
[Clang] Normalize constraints before checking for satisfaction (#161671)
In the standard, constraint satisfaction checking is done on the
normalized form of a constraint.
Clang instead substitutes on the non-normalized form, which causes us to
report substitution failures in template arguments or concept ids, which
is non-conforming but unavoidable without a parameter mapping
This patch normalizes before satisfaction checking. However, we preserve
concept-id nodes in the normalized form, solely for diagnostics
purposes.
This addresses https://github.com/llvm/llvm-project/issues/61811 and
related concepts conformance bugs, ideally to make the remaining
implementation of concept template parameters easier
Fixes https://github.com/llvm/llvm-project/issues/135190
Fixes https://github.com/llvm/llvm-project/issues/61811
Co-authored-by: Younan Zhang
[zyn7109@gmail.com](mailto:zyn7109@gmail.com)
---------
Co-authored-by: Younan Zhang <zyn7109@gmail.com>
Diffstat (limited to 'libcxx/include/__algorithm/comp.h')
0 files changed, 0 insertions, 0 deletions