Author: scott.linder Date: Mon Feb 12 11:47:05 2018 New Revision: 324929 URL: http://llvm.org/viewvc/llvm-project?rev=324929&view=rev Log: [DebugInfo] Update Checksum handling in CGDebugInfo
Update to match new DIFile API. Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp cfe/trunk/lib/CodeGen/CGDebugInfo.h Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=324929&r1=324928&r2=324929&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Mon Feb 12 11:47:05 2018 @@ -361,19 +361,19 @@ StringRef CGDebugInfo::getClassName(cons return StringRef(); } -llvm::DIFile::ChecksumKind +Optional<llvm::DIFile::ChecksumKind> CGDebugInfo::computeChecksum(FileID FID, SmallString<32> &Checksum) const { Checksum.clear(); if (!CGM.getCodeGenOpts().EmitCodeView && CGM.getCodeGenOpts().DwarfVersion < 5) - return llvm::DIFile::CSK_None; + return None; SourceManager &SM = CGM.getContext().getSourceManager(); bool Invalid; llvm::MemoryBuffer *MemBuffer = SM.getBuffer(FID, &Invalid); if (Invalid) - return llvm::DIFile::CSK_None; + return None; llvm::MD5 Hash; llvm::MD5::MD5Result Result; @@ -390,7 +390,6 @@ llvm::DIFile *CGDebugInfo::getOrCreateFi // If Location is not valid then use main input file. return DBuilder.createFile(remapDIPath(TheCU->getFilename()), remapDIPath(TheCU->getDirectory()), - TheCU->getFile()->getChecksumKind(), TheCU->getFile()->getChecksum()); SourceManager &SM = CGM.getContext().getSourceManager(); @@ -400,7 +399,6 @@ llvm::DIFile *CGDebugInfo::getOrCreateFi // If the location is not valid then use main input file. return DBuilder.createFile(remapDIPath(TheCU->getFilename()), remapDIPath(TheCU->getDirectory()), - TheCU->getFile()->getChecksumKind(), TheCU->getFile()->getChecksum()); // Cache the results. @@ -414,12 +412,15 @@ llvm::DIFile *CGDebugInfo::getOrCreateFi } SmallString<32> Checksum; - llvm::DIFile::ChecksumKind CSKind = + Optional<llvm::DIFile::ChecksumKind> CSKind = computeChecksum(SM.getFileID(Loc), Checksum); + Optional<llvm::DIFile::ChecksumInfo<StringRef>> CSInfo; + if (CSKind) + CSInfo.emplace(*CSKind, Checksum); llvm::DIFile *F = DBuilder.createFile(remapDIPath(PLoc.getFilename()), remapDIPath(getCurrentDirname()), - CSKind, Checksum); + CSInfo); DIFileCache[fname].reset(F); return F; @@ -428,7 +429,6 @@ llvm::DIFile *CGDebugInfo::getOrCreateFi llvm::DIFile *CGDebugInfo::getOrCreateMainFile() { return DBuilder.createFile(remapDIPath(TheCU->getFilename()), remapDIPath(TheCU->getDirectory()), - TheCU->getFile()->getChecksumKind(), TheCU->getFile()->getChecksum()); } @@ -473,7 +473,8 @@ StringRef CGDebugInfo::getCurrentDirname void CGDebugInfo::CreateCompileUnit() { SmallString<32> Checksum; - llvm::DIFile::ChecksumKind CSKind = llvm::DIFile::CSK_None; + Optional<llvm::DIFile::ChecksumKind> CSKind; + Optional<llvm::DIFile::ChecksumInfo<StringRef>> CSInfo; // Should we be asking the SourceManager for the main file name, instead of // accepting it as an argument? This just causes the main file name to @@ -552,13 +553,16 @@ void CGDebugInfo::CreateCompileUnit() { break; } + if (CSKind) + CSInfo.emplace(*CSKind, Checksum); + // Create new compile unit. // FIXME - Eliminate TheCU. auto &CGOpts = CGM.getCodeGenOpts(); TheCU = DBuilder.createCompileUnit( LangTag, DBuilder.createFile(remapDIPath(MainFileName), - remapDIPath(getCurrentDirname()), CSKind, Checksum), + remapDIPath(getCurrentDirname()), CSInfo), Producer, LO.Optimize || CGOpts.PrepareForLTO || CGOpts.EmitSummaryIndex, CGOpts.DwarfDebugFlags, RuntimeVers, CGOpts.EnableSplitDwarf ? "" : CGOpts.SplitDwarfFile, EmissionKind, Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=324929&r1=324928&r2=324929&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Mon Feb 12 11:47:05 2018 @@ -499,8 +499,8 @@ private: std::string remapDIPath(StringRef) const; /// Compute the file checksum debug info for input file ID. - llvm::DIFile::ChecksumKind computeChecksum(FileID FID, - SmallString<32> &Checksum) const; + Optional<llvm::DIFile::ChecksumKind> + computeChecksum(FileID FID, SmallString<32> &Checksum) const; /// Get the file debug info descriptor for the input location. llvm::DIFile *getOrCreateFile(SourceLocation Loc); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits