@@ -102,16 +102,25 @@ void adjustColumnWidths(ArrayRef<StringRef> Files,
102
102
103
103
// / Prints a horizontal divider long enough to cover the given column
104
104
// / widths.
105
- void renderDivider (ArrayRef<size_t > ColumnWidths, raw_ostream &OS, const CoverageViewOptions &Options) {
106
- size_t Length = std::accumulate (ColumnWidths.begin (), ColumnWidths.end (), 0 );
107
- if (!Options.ShowRegionSummary )
108
- Length -= (FileReportColumns[1 ] + FileReportColumns[2 ] + FileReportColumns[3 ]);
109
- if (!Options.ShowInstantiationSummary )
110
- Length -= (FileReportColumns[7 ] + FileReportColumns[8 ] + FileReportColumns[9 ]);
111
- if (!Options.ShowBranchSummary )
112
- Length -= (FileReportColumns[13 ] + FileReportColumns[14 ] + FileReportColumns[15 ]);
113
- if (!Options.ShowMCDCSummary )
114
- Length -= (FileReportColumns[16 ] + FileReportColumns[17 ] + FileReportColumns[18 ]);
105
+ void renderDivider (raw_ostream &OS, const CoverageViewOptions &Options, bool isFileReport) {
106
+ size_t Length;
107
+ if (isFileReport) {
108
+ Length = std::accumulate (std::begin (FileReportColumns), std::end (FileReportColumns), 0 );
109
+ if (!Options.ShowRegionSummary )
110
+ Length -= (FileReportColumns[1 ] + FileReportColumns[2 ] + FileReportColumns[3 ]);
111
+ if (!Options.ShowInstantiationSummary )
112
+ Length -= (FileReportColumns[7 ] + FileReportColumns[8 ] + FileReportColumns[9 ]);
113
+ if (!Options.ShowBranchSummary )
114
+ Length -= (FileReportColumns[13 ] + FileReportColumns[14 ] + FileReportColumns[15 ]);
115
+ if (!Options.ShowMCDCSummary )
116
+ Length -= (FileReportColumns[16 ] + FileReportColumns[17 ] + FileReportColumns[18 ]);
117
+ } else {
118
+ Length = std::accumulate (std::begin (FunctionReportColumns), std::end (FunctionReportColumns), 0 );
119
+ if (!Options.ShowBranchSummary )
120
+ Length -= (FunctionReportColumns[7 ] + FunctionReportColumns[8 ] + FunctionReportColumns[9 ]);
121
+ if (!Options.ShowMCDCSummary )
122
+ Length -= (FunctionReportColumns[10 ] + FunctionReportColumns[11 ] + FunctionReportColumns[12 ]);
123
+ }
115
124
for (size_t I = 0 ; I < Length; ++I)
116
125
OS << ' -' ;
117
126
}
@@ -413,7 +422,7 @@ void CoverageReport::renderFunctionReports(ArrayRef<std::string> Files,
413
422
<< column (" Miss" , FunctionReportColumns[11 ], Column::RightAlignment)
414
423
<< column (" Cover" , FunctionReportColumns[12 ], Column::RightAlignment);
415
424
OS << " \n " ;
416
- renderDivider (FunctionReportColumns, OS, Options);
425
+ renderDivider (OS, Options, false );
417
426
OS << " \n " ;
418
427
FunctionCoverageSummary Totals (" TOTAL" );
419
428
for (const auto &F : Functions) {
@@ -426,7 +435,7 @@ void CoverageReport::renderFunctionReports(ArrayRef<std::string> Files,
426
435
render (Function, DC, OS);
427
436
}
428
437
if (Totals.ExecutionCount ) {
429
- renderDivider (FunctionReportColumns, OS, Options);
438
+ renderDivider (OS, Options, false );
430
439
OS << " \n " ;
431
440
render (Totals, DC, OS);
432
441
}
@@ -552,7 +561,7 @@ void CoverageReport::renderFileReports(
552
561
Column::RightAlignment)
553
562
<< column (" Cover" , FileReportColumns[18 ], Column::RightAlignment);
554
563
OS << " \n " ;
555
- renderDivider (FileReportColumns, OS, Options);
564
+ renderDivider (OS, Options, true );
556
565
OS << " \n " ;
557
566
558
567
std::vector<const FileCoverageSummary *> EmptyFiles;
@@ -571,7 +580,7 @@ void CoverageReport::renderFileReports(
571
580
render (*FCS, OS);
572
581
}
573
582
574
- renderDivider (FileReportColumns, OS, Options);
583
+ renderDivider (OS, Options, true );
575
584
OS << " \n " ;
576
585
render (Totals, OS);
577
586
}
0 commit comments