diff options
author | Michael Buch <michaelbuch12@gmail.com> | 2022-09-26 18:38:37 +0200 |
---|---|---|
committer | Michael Buch <michaelbuch12@gmail.com> | 2022-09-27 18:03:23 +0100 |
commit | 60eb06be6d23e3c5fd80113143784aac0d962965 (patch) | |
tree | 10d80a1c75129b12a5f18152e1872336ac1504c5 /llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp | |
parent | a6383bb51cce781fc8236c89966a09879dc4bb25 (diff) | |
download | llvm-60eb06be6d23e3c5fd80113143784aac0d962965.zip llvm-60eb06be6d23e3c5fd80113143784aac0d962965.tar.gz llvm-60eb06be6d23e3c5fd80113143784aac0d962965.tar.bz2 |
[lldb][TypeSystemClang] Honor DW_AT_rvalue_reference when creating C++ FunctionPrototypes
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 `FunctionPrototype`s
`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
Differential Revision: https://reviews.llvm.org/D134661
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp')
0 files changed, 0 insertions, 0 deletions