clang  6.0.0svn
Public Member Functions | List of all members
clang::MacroPPCallbacks Class Reference

#include "/opt/doxygen-docs/src/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.h"

Inheritance diagram for clang::MacroPPCallbacks:
Inheritance graph
[legend]
Collaboration diagram for clang::MacroPPCallbacks:
Collaboration graph
[legend]

Public Member Functions

 MacroPPCallbacks (CodeGenerator *Gen, Preprocessor &PP)
 
void FileChanged (SourceLocation Loc, FileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID=FileID()) override
 Callback invoked whenever a source file is entered or exited. More...
 
void InclusionDirective (SourceLocation HashLoc, const Token &IncludeTok, StringRef FileName, bool IsAngled, CharSourceRange FilenameRange, const FileEntry *File, StringRef SearchPath, StringRef RelativePath, const Module *Imported) override
 Callback invoked whenever a directive (#xxx) is processed. More...
 
void MacroDefined (const Token &MacroNameTok, const MacroDirective *MD) override
 Hook called whenever a macro definition is seen. More...
 
void MacroUndefined (const Token &MacroNameTok, const MacroDefinition &MD, const MacroDirective *Undef) override
 Hook called whenever a macro #undef is seen. More...
 
- Public Member Functions inherited from clang::PPCallbacks
virtual ~PPCallbacks ()
 
virtual void FileSkipped (const FileEntry &SkippedFile, const Token &FilenameTok, SrcMgr::CharacteristicKind FileType)
 Callback invoked whenever a source file is skipped as the result of header guard optimization. More...
 
virtual bool FileNotFound (StringRef FileName, SmallVectorImpl< char > &RecoveryPath)
 Callback invoked whenever an inclusion directive results in a file-not-found error. More...
 
virtual void moduleImport (SourceLocation ImportLoc, ModuleIdPath Path, const Module *Imported)
 Callback invoked whenever there was an explicit module-import syntax. More...
 
virtual void EndOfMainFile ()
 Callback invoked when the end of the main file is reached. More...
 
virtual void Ident (SourceLocation Loc, StringRef str)
 Callback invoked when a #ident or #sccs directive is read. More...
 
virtual void PragmaDirective (SourceLocation Loc, PragmaIntroducerKind Introducer)
 Callback invoked when start reading any pragma directive. More...
 
virtual void PragmaComment (SourceLocation Loc, const IdentifierInfo *Kind, StringRef Str)
 Callback invoked when a #pragma comment directive is read. More...
 
virtual void PragmaDetectMismatch (SourceLocation Loc, StringRef Name, StringRef Value)
 Callback invoked when a #pragma detect_mismatch directive is read. More...
 
virtual void PragmaDebug (SourceLocation Loc, StringRef DebugType)
 Callback invoked when a #pragma clang __debug directive is read. More...
 
virtual void PragmaMessage (SourceLocation Loc, StringRef Namespace, PragmaMessageKind Kind, StringRef Str)
 Callback invoked when a #pragma message directive is read. More...
 
virtual void PragmaDiagnosticPush (SourceLocation Loc, StringRef Namespace)
 Callback invoked when a #pragma gcc diagnostic push directive is read. More...
 
virtual void PragmaDiagnosticPop (SourceLocation Loc, StringRef Namespace)
 Callback invoked when a #pragma gcc diagnostic pop directive is read. More...
 
virtual void PragmaDiagnostic (SourceLocation Loc, StringRef Namespace, diag::Severity mapping, StringRef Str)
 Callback invoked when a #pragma gcc diagnostic directive is read. More...
 
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. More...
 
virtual void PragmaWarning (SourceLocation Loc, StringRef WarningSpec, ArrayRef< int > Ids)
 Callback invoked when a #pragma warning directive is read. More...
 
virtual void PragmaWarningPush (SourceLocation Loc, int Level)
 Callback invoked when a #pragma warning(push) directive is read. More...
 
virtual void PragmaWarningPop (SourceLocation Loc)
 Callback invoked when a #pragma warning(pop) directive is read. More...
 
virtual void PragmaAssumeNonNullBegin (SourceLocation Loc)
 Callback invoked when a #pragma clang assume_nonnull begin directive is read. More...
 
virtual void PragmaAssumeNonNullEnd (SourceLocation Loc)
 Callback invoked when a #pragma clang assume_nonnull end directive is read. More...
 
virtual void MacroExpands (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range, const MacroArgs *Args)
 Called by Preprocessor::HandleMacroExpandedIdentifier when a macro invocation is found. More...
 
virtual void Defined (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range)
 Hook called whenever the 'defined' operator is seen. More...
 
virtual void SourceRangeSkipped (SourceRange Range, SourceLocation EndifLoc)
 Hook called when a source range is skipped. More...
 
virtual void If (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue)
 Hook called whenever an #if is seen. More...
 
virtual void Elif (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue, SourceLocation IfLoc)
 Hook called whenever an #elif is seen. More...
 
virtual void Ifdef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
 Hook called whenever an #ifdef is seen. More...
 
virtual void Ifndef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
 Hook called whenever an #ifndef is seen. More...
 
virtual void Else (SourceLocation Loc, SourceLocation IfLoc)
 Hook called whenever an #else is seen. More...
 
virtual void Endif (SourceLocation Loc, SourceLocation IfLoc)
 Hook called whenever an #endif is seen. More...
 

Additional Inherited Members

- Public Types inherited from clang::PPCallbacks
enum  FileChangeReason { EnterFile, ExitFile, SystemHeaderPragma, RenameFile }
 
enum  PragmaMessageKind { PMK_Message, PMK_Warning, PMK_Error }
 Determines the kind of #pragma invoking a call to PragmaMessage. More...
 
enum  ConditionValueKind { CVK_NotEvaluated, CVK_False, CVK_True }
 

Detailed Description

Definition at line 25 of file MacroPPCallbacks.h.

Constructor & Destructor Documentation

◆ MacroPPCallbacks()

MacroPPCallbacks::MacroPPCallbacks ( CodeGenerator Gen,
Preprocessor PP 
)

Definition at line 61 of file MacroPPCallbacks.cpp.

Member Function Documentation

◆ FileChanged()

void MacroPPCallbacks::FileChanged ( SourceLocation  Loc,
FileChangeReason  Reason,
SrcMgr::CharacteristicKind  FileType,
FileID  PrevFID = FileID() 
)
overridevirtual

Callback invoked whenever a source file is entered or exited.

Parameters
LocIndicates the new location.
PrevFIDthe file that was exited if Reason is ExitFile.

Reimplemented from clang::PPCallbacks.

Definition at line 168 of file MacroPPCallbacks.cpp.

References clang::PPCallbacks::EnterFile, and clang::PPCallbacks::ExitFile.

◆ InclusionDirective()

void MacroPPCallbacks::InclusionDirective ( SourceLocation  HashLoc,
const Token IncludeTok,
StringRef  FileName,
bool  IsAngled,
CharSourceRange  FilenameRange,
const FileEntry File,
StringRef  SearchPath,
StringRef  RelativePath,
const Module Imported 
)
overridevirtual

Callback invoked whenever a directive (#xxx) is processed.

Reimplemented from clang::PPCallbacks.

Definition at line 178 of file MacroPPCallbacks.cpp.

◆ MacroDefined()

void MacroPPCallbacks::MacroDefined ( const Token MacroNameTok,
const MacroDirective MD 
)
overridevirtual

Hook called whenever a macro definition is seen.

Reimplemented from clang::PPCallbacks.

Definition at line 187 of file MacroPPCallbacks.cpp.

References clang::Token::getIdentifierInfo(), clang::Token::getLocation(), and Id.

◆ MacroUndefined()

void MacroPPCallbacks::MacroUndefined ( const Token MacroNameTok,
const MacroDefinition MD,
const MacroDirective Undef 
)
overridevirtual

Hook called whenever a macro #undef is seen.

MD is released immediately following this callback.

Reimplemented from clang::PPCallbacks.

Definition at line 200 of file MacroPPCallbacks.cpp.

References clang::CodeGen::CGDebugInfo::CreateMacro(), clang::CodeGenerator::getCGDebugInfo(), clang::Token::getIdentifierInfo(), clang::Token::getLocation(), clang::IdentifierInfo::getName(), and Id.


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