diff options
author | Yuchen Wu <yuchenericwu@hotmail.com> | 2013-11-21 04:53:39 +0000 |
---|---|---|
committer | Yuchen Wu <yuchenericwu@hotmail.com> | 2013-11-21 04:53:39 +0000 |
commit | 2a9d96992d5b9c2a5811f9c31cc9164512c5498f (patch) | |
tree | b112209d38561708c94317540751daca8b04c453 /llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp | |
parent | 9a74b8c67736c9232d1ca4e83d7db95cac402768 (diff) | |
download | bcm5719-llvm-2a9d96992d5b9c2a5811f9c31cc9164512c5498f.tar.gz bcm5719-llvm-2a9d96992d5b9c2a5811f9c31cc9164512c5498f.zip |
llvm-cov: Don't assume FileChecksum was generated.
For cases where emitProfileArcs() was called but emitProfileNotes() was
not, set the CfgChecksum to 0.
llvm-svn: 195311
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp')
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp b/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp index 63227f99723..13472f038d5 100644 --- a/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp +++ b/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp @@ -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 = |