summaryrefslogtreecommitdiff
path: root/lib/CodeGen/AsmPrinter/DwarfUnit.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/AsmPrinter/DwarfUnit.h')
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfUnit.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfUnit.h b/lib/CodeGen/AsmPrinter/DwarfUnit.h
index 3f42e2f672..61a50a7936 100644
--- a/lib/CodeGen/AsmPrinter/DwarfUnit.h
+++ b/lib/CodeGen/AsmPrinter/DwarfUnit.h
@@ -534,6 +534,8 @@ private:
};
class DwarfCompileUnit : public DwarfUnit {
+ unsigned statementListIndex;
+
public:
DwarfCompileUnit(unsigned UID, DIE *D, DICompileUnit Node, AsmPrinter *A,
DwarfDebug *DW, DwarfFile *DWU);
@@ -545,6 +547,17 @@ public:
/// addLabelAddress - Add a dwarf label attribute data and value using
/// either DW_FORM_addr or DW_FORM_GNU_addr_index.
void addLabelAddress(DIE *Die, dwarf::Attribute Attribute, MCSymbol *Label);
+
+ void setStatementListIndex(unsigned statementListIndex) {
+ this->statementListIndex = statementListIndex;
+ }
+
+ void initStatementList(DIE *D) const {
+ DIE *UD = getUnitDie();
+ D->addValue(dwarf::DW_AT_stmt_list,
+ UD->getAbbrev().getData()[statementListIndex].getForm(),
+ UD->getValues()[statementListIndex]);
+ }
};
class DwarfTypeUnit : public DwarfUnit {