diff options
author | Paul Robinson <paul.robinson@sony.com> | 2018-01-09 23:31:48 +0000 |
---|---|---|
committer | Paul Robinson <paul.robinson@sony.com> | 2018-01-09 23:31:48 +0000 |
commit | 29f5f987f1b76b5c43310b2062c9f447667a4f80 (patch) | |
tree | e19e9304ed5003b04e3a2a2b88c3c833df6a6c1e /llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | |
parent | d72f78e7c8d6dbef66cdbee0292237c68d780160 (diff) | |
download | bcm5719-llvm-29f5f987f1b76b5c43310b2062c9f447667a4f80.tar.gz bcm5719-llvm-29f5f987f1b76b5c43310b2062c9f447667a4f80.zip |
[DWARFv5] MC support for MD5 file checksums
Extend .file directive syntax to allow specifying an MD5 checksum for
the source file. Emit the checksums in DWARF v5 line tables.
llvm-svn: 322134
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index c8cd8eb8ffd..0443bde0cf2 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -95,14 +95,15 @@ void DwarfCompileUnit::addLocalLabelAddress(DIE &Die, } unsigned DwarfCompileUnit::getOrCreateSourceID(StringRef FileName, - StringRef DirName) { + StringRef DirName, + MD5::MD5Result *Checksum) { // If we print assembly, we can't separate .file entries according to // compile units. Thus all files will belong to the default compile unit. // FIXME: add a better feature test than hasRawTextSupport. Even better, // extend .file to support this. return Asm->OutStreamer->EmitDwarfFileDirective( - 0, DirName, FileName, + 0, DirName, FileName, Checksum, Asm->OutStreamer->hasRawTextSupport() ? 0 : getUniqueID()); } @@ -443,7 +444,7 @@ DIE *DwarfCompileUnit::constructInlinedScopeDIE(LexicalScope *Scope) { // Add the call site information to the DIE. const DILocation *IA = Scope->getInlinedAt(); addUInt(*ScopeDIE, dwarf::DW_AT_call_file, None, - getOrCreateSourceID(IA->getFilename(), IA->getDirectory())); + getOrCreateSourceID(IA->getFilename(), IA->getDirectory(), nullptr)); addUInt(*ScopeDIE, dwarf::DW_AT_call_line, None, IA->getLine()); if (IA->getDiscriminator() && DD->getDwarfVersion() >= 4) addUInt(*ScopeDIE, dwarf::DW_AT_GNU_discriminator, None, |