From 7faeecc8f78c31c24c32a9c2e468e840e1b0a15d Mon Sep 17 00:00:00 2001 From: Amjad Aboud Date: Sun, 25 Dec 2016 10:12:09 +0000 Subject: [DebugInfo] Added support for Checksum debug info feature. Differential Revision: https://reviews.llvm.org/D27642 llvm-svn: 290514 --- llvm/lib/Bitcode/Reader/MetadataLoader.cpp | 8 ++++++-- llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'llvm/lib/Bitcode') diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp index 595b9837c1d..cd08268d47b 100644 --- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp +++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp @@ -815,13 +815,17 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata( } case bitc::METADATA_FILE: { - if (Record.size() != 3) + if (Record.size() != 3 && Record.size() != 5) return error("Invalid record"); IsDistinct = Record[0]; MetadataList.assignValue( GET_OR_DISTINCT( - DIFile, (Context, getMDString(Record[1]), getMDString(Record[2]))), + DIFile, + (Context, getMDString(Record[1]), getMDString(Record[2]), + Record.size() == 3 ? DIFile::CSK_None + : static_cast(Record[3]), + Record.size() == 3 ? nullptr : getMDString(Record[4]))), NextMetadataNo++); break; } diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp index d2abf7cb39a..9d2bea8ccae 100644 --- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -1515,6 +1515,8 @@ void ModuleBitcodeWriter::writeDIFile(const DIFile *N, Record.push_back(N->isDistinct()); Record.push_back(VE.getMetadataOrNullID(N->getRawFilename())); Record.push_back(VE.getMetadataOrNullID(N->getRawDirectory())); + Record.push_back(N->getChecksumKind()); + Record.push_back(VE.getMetadataOrNullID(N->getRawChecksum())); Stream.EmitRecord(bitc::METADATA_FILE, Record, Abbrev); Record.clear(); -- cgit v1.2.3