summaryrefslogtreecommitdiff
path: root/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2013-12-18 21:48:19 +0000
committerAdrian Prantl <aprantl@apple.com>2013-12-18 21:48:19 +0000
commit5112542840c5be96f2245a2a0fa59dea57dfe6f4 (patch)
tree7e4f77cda808075302069eb289c8364d57a6d6d1 /lib/CodeGen/AsmPrinter/DwarfUnit.cpp
parentf5d3392e50890e657c28160b58a3fa92d1789d75 (diff)
downloadllvm-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.cpp12
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;
}