Add the source language into the compile unit.

llvm-svn: 151143
This commit is contained in:
Eric Christopher 2012-02-22 08:46:13 +00:00
parent ef64b465a4
commit 3a2656b394
3 changed files with 10 additions and 4 deletions

View File

@ -32,8 +32,9 @@
using namespace llvm;
/// CompileUnit - Compile unit constructor.
CompileUnit::CompileUnit(unsigned I, DIE *D, AsmPrinter *A, DwarfDebug *DW)
: ID(I), CUDie(D), Asm(A), DD(DW), IndexTyDie(0) {
CompileUnit::CompileUnit(unsigned I, unsigned L, DIE *D, AsmPrinter *A,
DwarfDebug *DW)
: ID(I), Language(L), CUDie(D), Asm(A), DD(DW), IndexTyDie(0) {
DIEIntegerOne = new (DIEValueAllocator) DIEInteger(1);
}

View File

@ -36,6 +36,10 @@ class CompileUnit {
///
unsigned ID;
/// Language - The DW_AT_language of the compile unit
///
unsigned Language;
/// Die - Compile unit debug information entry.
///
const OwningPtr<DIE> CUDie;
@ -76,11 +80,12 @@ class CompileUnit {
DenseMap<DIE *, const MDNode *> ContainingTypeMap;
public:
CompileUnit(unsigned I, DIE *D, AsmPrinter *A, DwarfDebug *DW);
CompileUnit(unsigned I, unsigned L, DIE *D, AsmPrinter *A, DwarfDebug *DW);
~CompileUnit();
// Accessors.
unsigned getID() const { return ID; }
unsigned getLanguage() const { return Language; }
DIE* getCUDie() const { return CUDie.get(); }
const StringMap<DIE*> &getGlobalTypes() const { return GlobalTypes; }

View File

@ -550,7 +550,7 @@ CompileUnit *DwarfDebug::constructCompileUnit(const MDNode *N) {
unsigned ID = GetOrCreateSourceID(FN, CompilationDir);
DIE *Die = new DIE(dwarf::DW_TAG_compile_unit);
CompileUnit *NewCU = new CompileUnit(ID, Die, Asm, this);
CompileUnit *NewCU = new CompileUnit(ID, DIUnit.getLanguage(), Die, Asm, this);
NewCU->addString(Die, dwarf::DW_AT_producer, DIUnit.getProducer());
NewCU->addUInt(Die, dwarf::DW_AT_language, dwarf::DW_FORM_data2,
DIUnit.getLanguage());