Add DWARF discriminator support to DILexicalBlocks.

This adds support for emitting discriminators from DILexicalBlocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202736 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Diego Novillo
2014-03-03 18:53:17 +00:00
parent 98b5aaeebb
commit 6f8c0c0613
7 changed files with 84 additions and 10 deletions

View File

@@ -1825,6 +1825,7 @@ void DwarfDebug::recordSourceLine(unsigned Line, unsigned Col, const MDNode *S,
StringRef Fn;
StringRef Dir;
unsigned Src = 1;
unsigned Discriminator = 0;
if (S) {
DIDescriptor Scope(S);
@@ -1848,13 +1849,15 @@ void DwarfDebug::recordSourceLine(unsigned Line, unsigned Col, const MDNode *S,
DILexicalBlock DB(S);
Fn = DB.getFilename();
Dir = DB.getDirectory();
Discriminator = DB.getDiscriminator();
} else
llvm_unreachable("Unexpected scope info");
Src = getOrCreateSourceID(
Fn, Dir, Asm->OutStreamer.getContext().getDwarfCompileUnitID());
}
Asm->OutStreamer.EmitDwarfLocDirective(Src, Line, Col, Flags, 0, 0, Fn);
Asm->OutStreamer.EmitDwarfLocDirective(Src, Line, Col, Flags, 0,
Discriminator, Fn);
}
//===----------------------------------------------------------------------===//