mirror-llvm-project/clang/include
Younan Zhang 9b25011745 [Clang] Fix the normalization of fold constraints (#177531)
Fold constraints can contain packs expanded from different locations.
For `C<Ps...>`, where the ellipsis immediately follows the argument, the
pack should be expanded in place regardless of the fold expression. For
`C<Ps> && ...`, the fold expression itself is responsible for expanding
Ps.

Previously, both kinds of packs were expanded by the fold expression,
which broke assumptions within concept caching. This patch fixes that by
preserving PackExpansionTypes for the first kind of pack while rewriting
them to non-packs for the second kind.

This patch also removes an unused function and performs some cleanup of
the evaluation contexts. Hopefully it is viable for backporting.

No release note, as this issue was a regression.

Fixes https://github.com/llvm/llvm-project/issues/177245

(cherry picked from commit adc64c6e17)
2026-02-24 07:08:34 +00:00
..
clang [Clang] Fix the normalization of fold constraints (#177531) 2026-02-24 07:08:34 +00:00
clang-c [Clang][OpenMP][LoopTransformations] Implement "#pragma omp fuse" loop transformation directive and "looprange" clause (#139293) 2025-09-29 07:48:18 +02:00
CMakeLists.txt
module.modulemap Reland "[clang] Refactor option-related code from clangDriver into new clangOptions library" (#167374) 2025-11-10 21:24:39 +01:00