diff options
author | Adrian Prantl <aprantl@apple.com> | 2013-12-18 21:48:19 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2013-12-18 21:48:19 +0000 |
commit | 5112542840c5be96f2245a2a0fa59dea57dfe6f4 (patch) | |
tree | 7e4f77cda808075302069eb289c8364d57a6d6d1 /lib/CodeGen/AsmPrinter/DwarfUnit.cpp | |
parent | f5d3392e50890e657c28160b58a3fa92d1789d75 (diff) | |
download | llvm-5112542840c5be96f2245a2a0fa59dea57dfe6f4.tar.gz llvm-5112542840c5be96f2245a2a0fa59dea57dfe6f4.tar.bz2 llvm-5112542840c5be96f2245a2a0fa59dea57dfe6f4.tar.xz |
Debug info: Implement (rvalue) reference qualifiers for C++11 non-static
member functions. Paired commit with CFE.
rdar://problem/15356637
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197613 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter/DwarfUnit.cpp')
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfUnit.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/lib/CodeGen/AsmPrinter/DwarfUnit.cpp index 85a7628743..69240f870f 100644 --- a/lib/CodeGen/AsmPrinter/DwarfUnit.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfUnit.cpp @@ -1218,6 +1218,12 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, DICompositeType CTy) { (Language == dwarf::DW_LANG_C89 || Language == dwarf::DW_LANG_C99 || Language == dwarf::DW_LANG_ObjC)) addFlag(&Buffer, dwarf::DW_AT_prototyped); + + if (CTy.isLValueReference()) + addFlag(&Buffer, dwarf::DW_AT_reference); + + if (CTy.isRValueReference()) + addFlag(&Buffer, dwarf::DW_AT_rvalue_reference); } break; case dwarf::DW_TAG_structure_type: case dwarf::DW_TAG_union_type: @@ -1520,6 +1526,12 @@ DIE *DwarfUnit::getOrCreateSubprogramDIE(DISubprogram SP) { addUInt(SPDie, dwarf::DW_AT_APPLE_isa, dwarf::DW_FORM_flag, isa); } + if (SP.isLValueReference()) + addFlag(SPDie, dwarf::DW_AT_reference); + + if (SP.isRValueReference()) + addFlag(SPDie, dwarf::DW_AT_rvalue_reference); + return SPDie; } |