clang
6.0.0
|
Encapsulates changes to the "macros namespace" (the location where the macro name became active, the location where it was undefined, etc.). More...
#include "clang/Lex/MacroInfo.h"
Classes | |
class | DefInfo |
Public Types | |
enum | Kind { MD_Define, MD_Undefine, MD_Visibility } |
Public Member Functions | |
Kind | getKind () const |
SourceLocation | getLocation () const |
void | setPrevious (MacroDirective *Prev) |
Set previous definition of the macro with the same name. More... | |
const MacroDirective * | getPrevious () const |
Get previous definition of the macro with the same name. More... | |
MacroDirective * | getPrevious () |
Get previous definition of the macro with the same name. More... | |
bool | isFromPCH () const |
Return true if the macro directive was loaded from a PCH file. More... | |
void | setIsFromPCH () |
DefInfo | getDefinition () |
Traverses the macro directives history and returns the next macro definition directive along with info about its undefined location (if there is one) and if it is public or private. More... | |
const DefInfo | getDefinition () const |
bool | isDefined () const |
const MacroInfo * | getMacroInfo () const |
MacroInfo * | getMacroInfo () |
const DefInfo | findDirectiveAtLoc (SourceLocation L, SourceManager &SM) const |
Find macro definition active in the specified source location. More... | |
void | dump () const |
Static Public Member Functions | |
static bool | classof (const MacroDirective *) |
Protected Member Functions | |
MacroDirective (Kind K, SourceLocation Loc) | |
Protected Attributes | |
MacroDirective * | Previous = nullptr |
Previous macro directive for the same identifier, or nullptr. More... | |
SourceLocation | Loc |
unsigned | MDKind: 2 |
MacroDirective kind. More... | |
unsigned | IsFromPCH: 1 |
True if the macro directive was loaded from a PCH file. More... | |
unsigned | IsPublic: 1 |
Whether the macro has public visibility (when described in a module). More... | |
Encapsulates changes to the "macros namespace" (the location where the macro name became active, the location where it was undefined, etc.).
MacroDirectives, associated with an identifier, are used to model the macro history. Usually a macro definition (MacroInfo) is where a macro name becomes active (MacroDirective) but #pragma push_macro / pop_macro can create additional DefMacroDirectives for the same MacroInfo.
Definition at line 291 of file MacroInfo.h.
Enumerator | |
---|---|
MD_Define | |
MD_Undefine | |
MD_Visibility |
Definition at line 293 of file MacroInfo.h.
|
inlineprotected |
Definition at line 317 of file MacroInfo.h.
|
inlinestatic |
Definition at line 402 of file MacroInfo.h.
LLVM_DUMP_METHOD void MacroDirective::dump | ( | ) | const |
Definition at line 215 of file MacroInfo.cpp.
References getKind().
const MacroDirective::DefInfo MacroDirective::findDirectiveAtLoc | ( | SourceLocation | L, |
SourceManager & | SM | ||
) | const |
Find macro definition active in the specified source location.
If this macro was not defined there, return NULL.
Definition at line 203 of file MacroInfo.cpp.
References getDefinition(), clang::SourceManager::isBeforeInTranslationUnit(), and clang::SourceLocation::isValid().
MacroDirective::DefInfo MacroDirective::getDefinition | ( | ) |
Traverses the macro directives history and returns the next macro definition directive along with info about its undefined location (if there is one) and if it is public or private.
Definition at line 179 of file MacroInfo.cpp.
References getPrevious(), and clang::VisibilityMacroDirective::isPublic().
Referenced by clang::Preprocessor::getLocalMacroDirective().
|
inline |
Definition at line 381 of file MacroInfo.h.
References getDefinition().
|
inline |
Definition at line 321 of file MacroInfo.h.
Referenced by clang::DefMacroDirective::classof(), clang::UndefMacroDirective::classof(), and clang::VisibilityMacroDirective::classof().
|
inline |
Definition at line 323 of file MacroInfo.h.
Referenced by shouldIgnoreMacro().
|
inline |
Definition at line 391 of file MacroInfo.h.
References getDefinition().
Referenced by clang::PreprocessingRecord::findMacroDefinition(), clang::Preprocessor::getMacroInfo(), and shouldIgnoreMacro().
|
inline |
Definition at line 394 of file MacroInfo.h.
References clang::MacroInfo::dump(), getDefinition(), and SM.
|
inline |
Get previous definition of the macro with the same name.
Definition at line 329 of file MacroInfo.h.
References Previous.
Referenced by clang::Preprocessor::appendMacroDirective(), and getDefinition().
|
inline |
Get previous definition of the macro with the same name.
Definition at line 332 of file MacroInfo.h.
References Previous.
|
inline |
Definition at line 385 of file MacroInfo.h.
References getDefinition().
Referenced by clang::Preprocessor::appendMacroDirective(), and clang::Preprocessor::setLoadedMacroDirective().
|
inline |
Return true if the macro directive was loaded from a PCH file.
Definition at line 335 of file MacroInfo.h.
|
inline |
Definition at line 337 of file MacroInfo.h.
|
inline |
Set previous definition of the macro with the same name.
Definition at line 326 of file MacroInfo.h.
Referenced by clang::Preprocessor::appendMacroDirective(), and clang::Preprocessor::setLoadedMacroDirective().
|
protected |
True if the macro directive was loaded from a PCH file.
Definition at line 309 of file MacroInfo.h.
|
protected |
Whether the macro has public visibility (when described in a module).
Definition at line 315 of file MacroInfo.h.
|
protected |
Definition at line 303 of file MacroInfo.h.
|
protected |
MacroDirective kind.
Definition at line 306 of file MacroInfo.h.
|
protected |
Previous macro directive for the same identifier, or nullptr.
Definition at line 301 of file MacroInfo.h.