From 9d70d0b5ffe1e920ff28d506c8ddaefc5c51bb94 Mon Sep 17 00:00:00 2001 From: Vedant Kumar Date: Fri, 24 Jun 2016 00:34:51 +0000 Subject: [llvm-cov] Add SourceNames to SourceCoverageViews, NFC A SourceName can be a file or a function. It makes sense to attach this information to a SourceCoverageView, seeing as views (1) already point to the text corresponding to the relevant source code and (2) are already used to render that text along with the SourceNames. This is a nice cleanup which is independent of the upcoming html patch. While we're at it, document the fields in SourceCoverageView. llvm-svn: 273634 --- llvm/tools/llvm-cov/SourceCoverageView.h | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'llvm/tools/llvm-cov/SourceCoverageView.h') diff --git a/llvm/tools/llvm-cov/SourceCoverageView.h b/llvm/tools/llvm-cov/SourceCoverageView.h index 49a5f4a..2e98151 100644 --- a/llvm/tools/llvm-cov/SourceCoverageView.h +++ b/llvm/tools/llvm-cov/SourceCoverageView.h @@ -101,10 +101,23 @@ struct LineCoverageStats { /// It can have embedded coverage views. class SourceCoverageView { private: + /// A function or file name. + StringRef SourceName; + + /// A memory buffer backing the source on display. const MemoryBuffer &File; + + /// Various options to guide the coverage renderer. const CoverageViewOptions &Options; + + /// Complete coverage information about the source on display. coverage::CoverageData CoverageInfo; + + /// A container for all expansions (e.g macros) in the source on display. std::vector ExpansionSubViews; + + /// A container for all instantiations (e.g template functions) in the source + /// on display. std::vector InstantiationSubViews; /// \brief Render a source line with highlighting. @@ -132,10 +145,13 @@ private: static const unsigned LineNumberColumnWidth = 5; public: - SourceCoverageView(const MemoryBuffer &File, + SourceCoverageView(StringRef SourceName, const MemoryBuffer &File, const CoverageViewOptions &Options, coverage::CoverageData &&CoverageInfo) - : File(File), Options(Options), CoverageInfo(std::move(CoverageInfo)) {} + : SourceName(SourceName), File(File), Options(Options), + CoverageInfo(std::move(CoverageInfo)) {} + + StringRef getSourceName() const { return SourceName; } const CoverageViewOptions &getOptions() const { return Options; } @@ -154,6 +170,9 @@ public: /// \brief Print the code coverage information for a specific /// portion of a source file to the output stream. void render(raw_ostream &OS, bool WholeFile, unsigned IndentLevel = 0); + + /// \brief Print the source name corresponding to this view. + void renderSourceName(raw_ostream &OS); }; } // namespace llvm -- cgit v1.1