summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
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
commit99c7af26b72fb617f4aa1f60cf868155c2ccfe89 (patch)
tree6bf8de70e11297d32678fc6c7fa183067dc6f804 /llvm/lib/CodeGen
parent0630eb70949d748ba2661f12935584504deaec2b (diff)
downloadbcm5719-llvm-99c7af26b72fb617f4aa1f60cf868155c2ccfe89.tar.gz
bcm5719-llvm-99c7af26b72fb617f4aa1f60cf868155c2ccfe89.zip
Debug info: Implement (rvalue) reference qualifiers for C++11 non-static
member functions. Paired commit with CFE. rdar://problem/15356637 llvm-svn: 197613
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
index 85a76287434..69240f870f9 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+++ b/llvm/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;
}
OpenPOWER on IntegriCloud