[Concepts] Fix placeholder constraints when references are involved
authorRoy Jacobson <roi.jacobson1@gmail.com>
Sat, 19 Mar 2022 17:26:02 +0000 (13:26 -0400)
committerRoy Jacobson <roi.jacobson1@gmail.com>
Wed, 23 Mar 2022 15:14:58 +0000 (11:14 -0400)
commit94fd00f41ebddf84148f494410130527169d9573
treee953f7df7bb4ae4ce2757b65ab7b76c9734ed4ed
parentda167a53c87f53ce582de6cc122d5e090f341b42
[Concepts] Fix placeholder constraints when references are involved

Placeholder types were not checked for constraint satisfaction when modified by references or pointers.
The behavior now matches that of GCC and MSVC.

Are there other modifiers we might need to "peel"? I'm not sure my approach to this is the 'right' way to fix this, the loop feels a bit clunky.

GitHub issues [[ https://github.com/llvm/llvm-project/issues/54443 | #54443 ]], [[ https://github.com/llvm/llvm-project/issues/53911 | #53911 ]]

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D122083
clang/docs/ReleaseNotes.rst
clang/lib/Sema/SemaTemplateDeduction.cpp
clang/test/SemaTemplate/concepts.cpp