Author: probinson Date: Fri May 25 15:35:59 2018 New Revision: 333319 URL: http://llvm.org/viewvc/llvm-project?rev=333319&view=rev Log: Revert "[DebugInfo] Don't bother with MD5 checksums of preprocessed files."
This reverts commit d734f2aa3f76fbf355ecd2bbe081d0c1f49867ab. Also known as r333311. A very small but nonzero number of bots fail. Removed: cfe/trunk/test/CodeGen/md5-checksum-crash.c 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=333319&r1=333318&r2=333319&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Fri May 25 15:35:59 2018 @@ -67,8 +67,6 @@ CGDebugInfo::CGDebugInfo(CodeGenModule & DBuilder(CGM.getModule()) { for (const auto &KV : CGM.getCodeGenOpts().DebugPrefixMap) DebugPrefixMap[KV.first] = KV.second; - EmitFileChecksums = CGM.getCodeGenOpts().EmitCodeView || - CGM.getCodeGenOpts().DwarfVersion >= 5; CreateCompileUnit(); } @@ -367,21 +365,15 @@ Optional<llvm::DIFile::ChecksumKind> CGDebugInfo::computeChecksum(FileID FID, SmallString<32> &Checksum) const { Checksum.clear(); - if (!EmitFileChecksums) + if (!CGM.getCodeGenOpts().EmitCodeView && + CGM.getCodeGenOpts().DwarfVersion < 5) return None; SourceManager &SM = CGM.getContext().getSourceManager(); bool Invalid; - const SrcMgr::SLocEntry &Entry = SM.getSLocEntry(FID, &Invalid); - if (Invalid || !Entry.isFile()) + llvm::MemoryBuffer *MemBuffer = SM.getBuffer(FID, &Invalid); + if (Invalid) return None; - if (Entry.getFile().hasLineDirectives()) { - // This must be a preprocessed file; its content won't match the original - // source; therefore checksumming the text we have is pointless or wrong. - EmitFileChecksums = false; - return None; - } - llvm::MemoryBuffer *MemBuffer = SM.getBuffer(FID); llvm::MD5 Hash; llvm::MD5::MD5Result Result; Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=333319&r1=333318&r2=333319&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Fri May 25 15:35:59 2018 @@ -57,7 +57,6 @@ class CGDebugInfo { CodeGenModule &CGM; const codegenoptions::DebugInfoKind DebugKind; bool DebugTypeExtRefs; - mutable bool EmitFileChecksums; llvm::DIBuilder DBuilder; llvm::DICompileUnit *TheCU = nullptr; ModuleMap *ClangModuleMap = nullptr; Removed: cfe/trunk/test/CodeGen/md5-checksum-crash.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/md5-checksum-crash.c?rev=333318&view=auto ============================================================================== --- cfe/trunk/test/CodeGen/md5-checksum-crash.c (original) +++ cfe/trunk/test/CodeGen/md5-checksum-crash.c (removed) @@ -1,13 +0,0 @@ -// RUN: %clang_cc1 -triple %itanium_abi_triple -debug-info-kind=limited -dwarf-version=5 %s -emit-llvm -o- | FileCheck %s -// RUN: %clang_cc1 -triple %ms_abi_triple -gcodeview -debug-info-kind=limited %s -emit-llvm -o- | FileCheck %s - -// This had been crashing, no MD5 checksum for string.h. -// Now if there are #line directives, don't bother with checksums -// as a preprocessed file won't properly reflect the original source. -#define __NTH fct -void fn1() {} -# 7 "/usr/include/string.h" -void __NTH() {} -// Verify no checksum attributes on these files. -// CHECK-DAG: DIFile(filename: "{{.*}}.c", directory: "{{[^"]*}}") -// CHECK-DAG: DIFile(filename: "{{.*}}string.h", directory: "{{[^"]*}}") _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits