X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=tools%2Fllvm-cov%2FCoverageReport.cpp;h=ed01a2e154f1ba364f31b31a229b872b46323123;hp=7cab7b6c55c7da92e069be090c63bbf1faf6df3f;hb=f890225b786ddf6845bdfbdc9ba4a6f9f00645b1;hpb=49d94c2d2df85a4bebe6523459db02586ec289e8 diff --git a/tools/llvm-cov/CoverageReport.cpp b/tools/llvm-cov/CoverageReport.cpp index 7cab7b6c55c..ed01a2e154f 100644 --- a/tools/llvm-cov/CoverageReport.cpp +++ b/tools/llvm-cov/CoverageReport.cpp @@ -91,6 +91,17 @@ static Column column(StringRef Str, unsigned Width, const T &Value) { static size_t FileReportColumns[] = {25, 10, 8, 8, 10, 10}; static size_t FunctionReportColumns[] = {25, 10, 8, 8, 10, 8, 8}; +/// \brief Adjust column widths to fit long file paths and function names. +static void adjustColumnWidths(coverage::CoverageMapping *CM) { + for (StringRef Filename : CM->getUniqueSourceFiles()) { + FileReportColumns[0] = std::max(FileReportColumns[0], Filename.size()); + for (const auto &F : CM->getCoveredFunctions(Filename)) { + FunctionReportColumns[0] = + std::max(FunctionReportColumns[0], F.Name.size()); + } + } +} + /// \brief Prints a horizontal divider which spans across the given columns. template static void renderDivider(T (&Columns)[N], raw_ostream &OS) { @@ -162,6 +173,7 @@ void CoverageReport::render(const FunctionCoverageSummary &Function, void CoverageReport::renderFunctionReports(ArrayRef Files, raw_ostream &OS) { + adjustColumnWidths(Coverage.get()); bool isFirst = true; for (StringRef Filename : Files) { if (isFirst) @@ -196,15 +208,7 @@ void CoverageReport::renderFunctionReports(ArrayRef Files, } void CoverageReport::renderFileReports(raw_ostream &OS) { - // Adjust column widths to accomodate long paths and names. - for (StringRef Filename : Coverage->getUniqueSourceFiles()) { - FileReportColumns[0] = std::max(FileReportColumns[0], Filename.size()); - for (const auto &F : Coverage->getCoveredFunctions(Filename)) { - FunctionReportColumns[0] = - std::max(FunctionReportColumns[0], F.Name.size()); - } - } - + adjustColumnWidths(Coverage.get()); OS << column("Filename", FileReportColumns[0]) << column("Regions", FileReportColumns[1], Column::RightAlignment) << column("Miss", FileReportColumns[2], Column::RightAlignment)