diff options
author | Zachary Turner <zturner@google.com> | 2018-11-20 22:13:43 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2018-11-20 22:13:43 +0000 |
commit | c68f895702958dda96bfc297a3bc491082c5269d (patch) | |
tree | 78ce4e99f44a5ce5e82ef0e5a77ae67e494958fa /llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h | |
parent | 3826566c044e94f8c1e3d26c66f28a5545aab2bc (diff) | |
download | bcm5719-llvm-c68f895702958dda96bfc297a3bc491082c5269d.tar.gz bcm5719-llvm-c68f895702958dda96bfc297a3bc491082c5269d.zip |
[CodeView] Add support for ref-qualified member functions.
When you have a member function with a ref-qualifier, for example:
struct Foo {
void Func() &;
void Func2() &&;
};
clang-cl was not emitting this information. Doing so is a bit
awkward, because it's not a property of the LF_MFUNCTION type, which
is what you'd expect. Instead, it's a property of the this pointer
which is actually an LF_POINTER. This record has an attributes
bitmask on it, and our handling of this bitmask was all wrong. We
had some parts of the bitmask defined incorrectly, but importantly
for this bug, we didn't know about these extra 2 bits that represent
the ref qualifier at all.
Differential Revision: https://reviews.llvm.org/D54667
llvm-svn: 347354
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h index e85de5235aa..e64197af348 100644 --- a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h +++ b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h @@ -346,6 +346,10 @@ class LLVM_LIBRARY_VISIBILITY CodeViewDebug : public DebugHandlerBase { codeview::TypeIndex getTypeIndex(DITypeRef TypeRef, DITypeRef ClassTyRef = DITypeRef()); + codeview::TypeIndex + getTypeIndexForThisPtr(DITypeRef TypeRef, + const DISubroutineType *SubroutineTy); + codeview::TypeIndex getTypeIndexForReferenceTo(DITypeRef TypeRef); codeview::TypeIndex getMemberFunctionType(const DISubprogram *SP, |