Currently funciton lookup in the expression evaluator
fails to disambiguate member functions the are overloaded
on lvalue/rvalue reference-qualifiers. This happens because
we unconditionally set a FunctionPrototypes
ExtProtoInfo::RefQualifier to RQ_None. We lose
the ref-qualifiers in the synthesized AST and clang::Sema
fails to pick a correct overload candidate.
DWARF emits information about a function's ref-qualifiers
in the form of a boolean DW_AT_rvalue_reference (for rvalues)
and DW_AT_reference (for lvalues).
This patch sets the FunctionPrototype::ExtProtoInfo::RefQualifier
based on the DWARF attributes above.
Testing
- Added API test
llvm/llvm-project issue #57866
I guess the clang/AST/Type.h include should be grouped with the other clang includes. I'd recommend deleting this empty line and letting clang-format sort the includes for you.