llvm-cov: Don't assume FileChecksum was generated.
authorYuchen Wu <yuchenericwu@hotmail.com>
Thu, 21 Nov 2013 04:53:39 +0000 (04:53 +0000)
committerYuchen Wu <yuchenericwu@hotmail.com>
Thu, 21 Nov 2013 04:53:39 +0000 (04:53 +0000)
For cases where emitProfileArcs() was called but emitProfileNotes() was
not, set the CfgChecksum to 0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195311 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Instrumentation/GCOVProfiling.cpp

index 63227f997233712bd84fc4f6e6f6ab5205051bc8..13472f038d5c5ecde3faba7152c3d5cb6961a9b1 100644 (file)
@@ -803,10 +803,11 @@ Function *GCOVProfiler::insertCounterWriteout(
     for (unsigned i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i) {
       DICompileUnit CU(CU_Nodes->getOperand(i));
       std::string FilenameGcda = mangleName(CU, "gcda");
+      uint32_t CfgChecksum = FileChecksums.size() ? FileChecksums[i] : 0;
       Builder.CreateCall3(StartFile,
                           Builder.CreateGlobalStringPtr(FilenameGcda),
                           Builder.CreateGlobalStringPtr(ReversedVersion),
-                          Builder.getInt32(FileChecksums[i]));
+                          Builder.getInt32(CfgChecksum));
       for (unsigned j = 0, e = CountersBySP.size(); j != e; ++j) {
         DISubprogram SP(CountersBySP[j].second);
         Builder.CreateCall4(
@@ -815,7 +816,7 @@ Function *GCOVProfiler::insertCounterWriteout(
               Builder.CreateGlobalStringPtr(getFunctionName(SP)) :
               Constant::getNullValue(Builder.getInt8PtrTy()),
             Builder.getInt8(Options.UseCfgChecksum),
-            Builder.getInt32(FileChecksums[i]));
+            Builder.getInt32(CfgChecksum));
 
         GlobalVariable *GV = CountersBySP[j].first;
         unsigned Arcs =