diff options
| author | Vedant Kumar <vsk@apple.com> | 2016-04-29 01:31:49 +0000 |
|---|---|---|
| committer | Vedant Kumar <vsk@apple.com> | 2016-04-29 01:31:49 +0000 |
| commit | 78b8bc29db8177ad133a4d04de45fe14bcf220bd (patch) | |
| tree | 947cd12698310c9620ba664cbdd33b58b1aa12c1 | |
| parent | 1b66f7e3c8374aa39e51f47d4e0742a5ba15f894 (diff) | |
| download | bcm5719-llvm-78b8bc29db8177ad133a4d04de45fe14bcf220bd.tar.gz bcm5719-llvm-78b8bc29db8177ad133a4d04de45fe14bcf220bd.zip | |
[llvm-cov] Don't emit 'nan%' in reports
llvm-svn: 267971
| -rw-r--r-- | llvm/test/tools/llvm-cov/prevent_false_instantiations.h | 6 | ||||
| -rw-r--r-- | llvm/tools/llvm-cov/CoverageSummaryInfo.h | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/llvm/test/tools/llvm-cov/prevent_false_instantiations.h b/llvm/test/tools/llvm-cov/prevent_false_instantiations.h index 667ebde6d16..a8c72076d16 100644 --- a/llvm/test/tools/llvm-cov/prevent_false_instantiations.h +++ b/llvm/test/tools/llvm-cov/prevent_false_instantiations.h @@ -1,9 +1,11 @@ // Checks that function instantiations don't go to a wrong file. -// CHECK-NOT: {{_Z5func[1,2]v}} +// INSTANTIATION-NOT: {{_Z5func[1,2]v}} +// NAN-NOT: 0{{[ \t]+}}nan%{{[ \t]+}}0{{[ \t]+}}nan% // RUN: llvm-profdata merge %S/Inputs/prevent_false_instantiations.proftext -o %t.profdata -// RUN: llvm-cov show %S/Inputs/prevent_false_instantiations.covmapping -instr-profile %t.profdata -filename-equivalence %s | FileCheck %s +// RUN: llvm-cov show %S/Inputs/prevent_false_instantiations.covmapping -instr-profile %t.profdata -filename-equivalence %s | FileCheck %s -check-prefix=INSTANTIATION +// RUN: llvm-cov report %S/Inputs/prevent_false_instantiations.covmapping -instr-profile %t.profdata | FileCheck %s -check-prefix=NAN #define DO_SOMETHING() \ do { \ diff --git a/llvm/tools/llvm-cov/CoverageSummaryInfo.h b/llvm/tools/llvm-cov/CoverageSummaryInfo.h index c393b00d32a..a8902042403 100644 --- a/llvm/tools/llvm-cov/CoverageSummaryInfo.h +++ b/llvm/tools/llvm-cov/CoverageSummaryInfo.h @@ -47,6 +47,8 @@ struct RegionCoverageInfo { bool isFullyCovered() const { return Covered == NumRegions; } double getPercentCovered() const { + if (NumRegions == 0) + return 0.0; return double(Covered) / double(NumRegions) * 100.0; } }; @@ -83,6 +85,8 @@ struct LineCoverageInfo { bool isFullyCovered() const { return Covered == (NumLines - NonCodeLines); } double getPercentCovered() const { + if (NumLines - NonCodeLines == 0) + return 0.0; return double(Covered) / double(NumLines - NonCodeLines) * 100.0; } }; @@ -109,6 +113,8 @@ struct FunctionCoverageInfo { bool isFullyCovered() const { return Executed == NumFunctions; } double getPercentCovered() const { + if (NumFunctions == 0) + return 0.0; return double(Executed) / double(NumFunctions) * 100.0; } }; |

