Fix for Bug 33471: Preventing operator auto from resolving to a template operator.
As the bug report says,
struct A
{
template<typename T> operator T();
};
void foo()
{
A().operator auto();
}
causes: "undeduced type in IR-generation
UNREACHABLE executed at llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp:208!"
The problem is that in this case, "T" is being deduced as "auto",
which I believe is incorrect.
The 'operator auto' implementation in Clang is standards compliant, however
there is a defect report against core (1670).
Differential Revision: https://reviews.llvm.org/D34370
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@305812
91177308-0d34-0410-b5e6-
96231b3b80d8