llvm-6502/tools/llvm-cov/CoverageSummary.h
Justin Bogner d24e90a5de llvm-cov: Sink some reporting logic into CoverageMapping
This teaches CoverageMapping::getCoveredFunctions to filter to a
particular file and uses that to replace most of the logic found in
llvm-cov report.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221962 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-14 01:50:32 +00:00

46 lines
1.4 KiB
C++

//===- CoverageSummary.h - Code coverage summary --------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This class implements data management and rendering for the code coverage
// summaries of all files and functions.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_COV_COVERAGESUMMARY_H
#define LLVM_COV_COVERAGESUMMARY_H
#include "CoverageSummaryInfo.h"
#include <vector>
namespace llvm {
/// \brief Manager for the function and file code coverage summaries.
class CoverageSummary {
std::vector<StringRef> Filenames;
std::vector<FunctionCoverageSummary> FunctionSummaries;
std::vector<std::pair<unsigned, unsigned>> FunctionSummariesFileIDs;
std::vector<FileCoverageSummary> FileSummaries;
unsigned getFileID(StringRef Filename);
public:
void createSummaries(const coverage::CoverageMapping &Coverage);
ArrayRef<FileCoverageSummary> getFileSummaries() { return FileSummaries; }
FileCoverageSummary getCombinedFileSummaries();
void render(const FunctionCoverageSummary &Summary, raw_ostream &OS);
void render(raw_ostream &OS);
};
}
#endif // LLVM_COV_COVERAGESUMMARY_H