clang: clang::CoverageSourceInfo Class Reference (original) (raw)

Stores additional source code information like skipped ranges which is required by the coverage mapping generator and is obtained from the preprocessor. More...

#include "[/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CoverageMappingGen.h](CoverageMappingGen%5F8h%5Fsource.html)"

Public Member Functions
CoverageSourceInfo (SourceManager &SourceMgr)
std::vector< SkippedRange > & getSkippedRanges ()
void AddSkippedRange (SourceRange Range, SkippedRange::Kind RangeKind)
void SourceRangeSkipped (SourceRange Range, SourceLocation EndifLoc) override
Hook called when a source range is skipped.
void HandleEmptyline (SourceRange Range) override
bool HandleComment (Preprocessor &PP, SourceRange Range) override
void updateNextTokLoc (SourceLocation Loc)
- Public Member Functions inherited from clang::PPCallbacks
virtual ~PPCallbacks ()
virtual void FileChanged (SourceLocation Loc, FileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID=FileID())
Callback invoked whenever a source file is entered or exited.
virtual void LexedFileChanged (FileID FID, LexedFileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID, SourceLocation Loc)
Callback invoked whenever the Lexer moves to a different file for lexing.
virtual void FileSkipped (const FileEntryRef &SkippedFile, const Token &FilenameTok, SrcMgr::CharacteristicKind FileType)
Callback invoked whenever a source file is skipped as the result of header guard optimization.
virtual bool EmbedFileNotFound (StringRef FileName)
Callback invoked whenever the preprocessor cannot find a file for an embed directive.
virtual void EmbedDirective (SourceLocation HashLoc, StringRef FileName, bool IsAngled, OptionalFileEntryRef File, const LexEmbedParametersResult &Params)
Callback invoked whenever an embed directive has been processed, regardless of whether the embed will actually find a file.
virtual bool FileNotFound (StringRef FileName)
Callback invoked whenever the preprocessor cannot find a file for an inclusion directive.
virtual void InclusionDirective (SourceLocation HashLoc, const Token &IncludeTok, StringRef FileName, bool IsAngled, CharSourceRange FilenameRange, OptionalFileEntryRef File, StringRef SearchPath, StringRef RelativePath, const Module *SuggestedModule, bool ModuleImported, SrcMgr::CharacteristicKind FileType)
Callback invoked whenever an inclusion directive of any kind (#include, #import, etc.) has been processed, regardless of whether the inclusion will actually result in an inclusion.
virtual void EnteredSubmodule (Module *M, SourceLocation ImportLoc, bool ForPragma)
Callback invoked whenever a submodule was entered.
virtual void LeftSubmodule (Module *M, SourceLocation ImportLoc, bool ForPragma)
Callback invoked whenever a submodule was left.
virtual void moduleImport (SourceLocation ImportLoc, ModuleIdPath Path, const Module *Imported)
Callback invoked whenever there was an explicit module-import syntax.
virtual void EndOfMainFile ()
Callback invoked when the end of the main file is reached.
virtual void Ident (SourceLocation Loc, StringRef str)
Callback invoked when a #ident or #sccs directive is read.
virtual void PragmaDirective (SourceLocation Loc, PragmaIntroducerKind Introducer)
Callback invoked when start reading any pragma directive.
virtual void PragmaComment (SourceLocation Loc, const IdentifierInfo *Kind, StringRef Str)
Callback invoked when a #pragma comment directive is read.
virtual void PragmaMark (SourceLocation Loc, StringRef Trivia)
Callback invoked when a #pragma mark comment is read.
virtual void PragmaDetectMismatch (SourceLocation Loc, StringRef Name, StringRef Value)
Callback invoked when a #pragma detect_mismatch directive is read.
virtual void PragmaDebug (SourceLocation Loc, StringRef DebugType)
Callback invoked when a #pragma clang __debug directive is read.
virtual void PragmaMessage (SourceLocation Loc, StringRef Namespace, PragmaMessageKind Kind, StringRef Str)
Callback invoked when a #pragma message directive is read.
virtual void PragmaDiagnosticPush (SourceLocation Loc, StringRef Namespace)
Callback invoked when a #pragma gcc diagnostic push directive is read.
virtual void PragmaDiagnosticPop (SourceLocation Loc, StringRef Namespace)
Callback invoked when a #pragma gcc diagnostic pop directive is read.
virtual void PragmaDiagnostic (SourceLocation Loc, StringRef Namespace, diag::Severity mapping, StringRef Str)
Callback invoked when a #pragma gcc diagnostic directive is read.
virtual void PragmaOpenCLExtension (SourceLocation NameLoc, const IdentifierInfo *Name, SourceLocation StateLoc, unsigned State)
Called when an OpenCL extension is either disabled or enabled with a pragma.
virtual void PragmaWarning (SourceLocation Loc, PragmaWarningSpecifier WarningSpec, ArrayRef< int > Ids)
virtual void PragmaWarningPush (SourceLocation Loc, int Level)
Callback invoked when a #pragma warning(push) directive is read.
virtual void PragmaWarningPop (SourceLocation Loc)
Callback invoked when a #pragma warning(pop) directive is read.
virtual void PragmaExecCharsetPush (SourceLocation Loc, StringRef Str)
Callback invoked when a #pragma execution_character_set(push) directive is read.
virtual void PragmaExecCharsetPop (SourceLocation Loc)
Callback invoked when a #pragma execution_character_set(pop) directive is read.
virtual void PragmaAssumeNonNullBegin (SourceLocation Loc)
Callback invoked when a #pragma clang assume_nonnull begin directive is read.
virtual void PragmaAssumeNonNullEnd (SourceLocation Loc)
Callback invoked when a #pragma clang assume_nonnull end directive is read.
virtual void MacroExpands (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range, const MacroArgs *Args)
Called by Preprocessor::HandleMacroExpandedIdentifier when a macro invocation is found.
virtual void MacroDefined (const Token &MacroNameTok, const MacroDirective *MD)
Hook called whenever a macro definition is seen.
virtual void MacroUndefined (const Token &MacroNameTok, const MacroDefinition &MD, const MacroDirective *Undef)
Hook called whenever a macro #undef is seen.
virtual void Defined (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range)
Hook called whenever the 'defined' operator is seen.
virtual void HasEmbed (SourceLocation Loc, StringRef FileName, bool IsAngled, OptionalFileEntryRef File)
Hook called when a '__has_embed' directive is read.
virtual void HasInclude (SourceLocation Loc, StringRef FileName, bool IsAngled, OptionalFileEntryRef File, SrcMgr::CharacteristicKind FileType)
Hook called when a '__has_include' or '__has_include_next' directive is read.
virtual void SourceRangeSkipped (SourceRange Range, SourceLocation EndifLoc)
Hook called when a source range is skipped.
virtual void If (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue)
Hook called whenever an #if is seen.
virtual void Elif (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue, SourceLocation IfLoc)
Hook called whenever an #elif is seen.
virtual void Ifdef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
Hook called whenever an #ifdef is seen.
virtual void Elifdef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
Hook called whenever an #elifdef branch is taken.
virtual void Elifdef (SourceLocation Loc, SourceRange ConditionRange, SourceLocation IfLoc)
Hook called whenever an #elifdef is skipped.
virtual void Ifndef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
Hook called whenever an #ifndef is seen.
virtual void Elifndef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
Hook called whenever an #elifndef branch is taken.
virtual void Elifndef (SourceLocation Loc, SourceRange ConditionRange, SourceLocation IfLoc)
Hook called whenever an #elifndef is skipped.
virtual void Else (SourceLocation Loc, SourceLocation IfLoc)
Hook called whenever an #else is seen.
virtual void Endif (SourceLocation Loc, SourceLocation IfLoc)
Hook called whenever an #endif is seen.
- Public Member Functions inherited from clang::CommentHandler
virtual ~CommentHandler ()
virtual bool HandleComment (Preprocessor &PP, SourceRange Comment)=0
- Public Member Functions inherited from clang::EmptylineHandler
virtual ~EmptylineHandler ()
virtual void HandleEmptyline (SourceRange Range)=0
Additional Inherited Members
- Public Types inherited from clang::PPCallbacks
enum FileChangeReason { EnterFile, ExitFile, SystemHeaderPragma, RenameFile }
enum class LexedFileChangeReason { EnterFile, ExitFile }
enum PragmaMessageKind { PMK_Message, PMK_Warning, PMK_Error }
Determines the kind of #pragma invoking a call to PragmaMessage. More...
enum PragmaWarningSpecifier { PWS_Default, PWS_Disable, PWS_Error, PWS_Once, PWS_Suppress, PWS_Level1, PWS_Level2, PWS_Level3, PWS_Level4 }
Callback invoked when a #pragma warning directive is read. More...
enum ConditionValueKind { CVK_NotEvaluated, CVK_False, CVK_True }

Stores additional source code information like skipped ranges which is required by the coverage mapping generator and is obtained from the preprocessor.

Definition at line 67 of file CoverageMappingGen.h.

clang::CoverageSourceInfo::CoverageSourceInfo ( SourceManager & SourceMgr) inline

AddSkippedRange()

getSkippedRanges()

std::vector< SkippedRange > & clang::CoverageSourceInfo::getSkippedRanges ( ) inline

HandleComment()

HandleEmptyline()

void CoverageSourceInfo::HandleEmptyline ( SourceRange Range) overridevirtual

SourceRangeSkipped()

Hook called when a source range is skipped.

Parameters

Range The SourceRange that was skipped. The range begins at the #if/#else directive and ends after the #endif/#else directive.
EndifLoc The end location of the 'endif' token, which may precede the range skipped by the directive (e.g excluding comments after an 'endif').

Reimplemented from clang::PPCallbacks.

Definition at line 87 of file CoverageMappingGen.cpp.

References clang::SkippedRange::PPIfElse, and Range.

updateNextTokLoc()

PrevTokLoc


The documentation for this class was generated from the following files: