PR45589: Properly decompose overloaded `&&` and `||` operators in
authorRichard Smith <richard@metafoo.co.uk>
Tue, 12 May 2020 20:14:32 +0000 (13:14 -0700)
committerRichard Smith <richard@metafoo.co.uk>
Tue, 12 May 2020 20:45:45 +0000 (13:45 -0700)
commit6c29073efb0c22045868bc3622f8fc27f43fca41
tree5bad001f35e8f857e70a27d88ebe6713772b917e
parent7a17f3ccd109998d4e7019f5239dda61d7c6f829
PR45589: Properly decompose overloaded `&&` and `||` operators in
constraint expressions.

We create overloaded `&&` and `||` operators to hold the possible
unqualified lookup results (if any) when the operands are dependent. We
could avoid building these in some cases (we will never use the stored
lookup results, and it would be better to not store them or perform the
lookups), but in the general case we will probably still need to handle
overloaded operators even with that optimization.
clang/include/clang/Sema/Sema.h
clang/lib/Sema/SemaConcept.cpp
clang/lib/Sema/SemaExpr.cpp
clang/test/SemaTemplate/constraints.cpp [new file with mode: 0644]