From efa8374f6b56dff31b81eb712c157bdc4f0cf830 Mon Sep 17 00:00:00 2001 From: Flightor Date: Fri, 18 Aug 2023 16:48:30 +0800 Subject: [llvm-cov] Use uint64_t to avoid overflow in addition Reviewed By: alanphipps Differential Revision: https://reviews.llvm.org/D157608 --- llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp') diff --git a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp index 50e3dcc..49f2035 100644 --- a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp +++ b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp @@ -668,7 +668,9 @@ void SourceCoverageViewHTML::renderBranchView(raw_ostream &OS, BranchView &BRV, // Calculate TruePercent and False Percent. double TruePercent = 0.0; double FalsePercent = 0.0; - unsigned Total = R.ExecutionCount + R.FalseExecutionCount; + // FIXME: It may overflow when the data is too large, but I have not + // encountered it in actual use, and not sure whether to use __uint128_t. + uint64_t Total = R.ExecutionCount + R.FalseExecutionCount; if (!getOptions().ShowBranchCounts && Total != 0) { TruePercent = ((double)(R.ExecutionCount) / (double)Total) * 100.0; -- cgit v1.1