[Clang][Sema] Fix comparison of constraint expressions
authorAlexander Shaposhnikov <ashaposhnikov@google.com>
Tue, 4 Apr 2023 02:22:08 +0000 (02:22 +0000)
committerAlexander Shaposhnikov <ashaposhnikov@google.com>
Tue, 4 Apr 2023 02:31:13 +0000 (02:31 +0000)
commit60bee9ff544541e83ffbd4be31923d0e8b644690
tree51633e85c92f1327d0714360ad080b9aac0fb08a
parent3490345670cd88d8c1df1ed4bf8f3d75bb4156d3
[Clang][Sema] Fix comparison of constraint expressions

This diff switches the approach to comparison of constraint expressions
to the new one based on template args substitution.
It continues the effort to fix our handling of out-of-line definitions
of constrained templates.

The associated GitHub issue: https://github.com/llvm/llvm-project/issues/61414

Test plan:
1/ ninja check-all
2/ bootstrapped Clang passes tests

Differential revision: https://reviews.llvm.org/D146178
clang/lib/Sema/SemaConcept.cpp
clang/lib/Sema/SemaOverload.cpp
clang/lib/Sema/SemaTemplateInstantiate.cpp
clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
clang/test/SemaTemplate/concepts-out-of-line-def.cpp
clang/test/SemaTemplate/concepts.cpp
clang/www/cxx_status.html