clang 22.0.0git
clang::MacroExpansion Class Reference

Records the location of a macro expansion. More...

#include "clang/Lex/PreprocessingRecord.h"

Inheritance diagram for clang::MacroExpansion:
[legend]

Public Member Functions

 MacroExpansion (IdentifierInfo *BuiltinName, SourceRange Range)
 MacroExpansion (MacroDefinitionRecord *Definition, SourceRange Range)
bool isBuiltinMacro () const
 True if it is a builtin macro.
const IdentifierInfogetName () const
 The name of the macro being expanded.
MacroDefinitionRecordgetDefinition () const
 The definition of the macro being expanded.
Public Member Functions inherited from clang::PreprocessedEntity
EntityKind getKind () const
 Retrieve the kind of preprocessed entity stored in this object.
SourceRange getSourceRange () const LLVM_READONLY
 Retrieve the source range that covers this entire preprocessed entity.
bool isInvalid () const
 Returns true if there was a problem loading the preprocessed entity.
void * operator new (size_t bytes, PreprocessingRecord &PR, unsigned alignment=8) noexcept
void * operator new (size_t bytes, void *mem) noexcept
void operator delete (void *ptr, PreprocessingRecord &PR, unsigned alignment) noexcept
void operator delete (void *, std::size_t) noexcept
void operator delete (void *, void *) noexcept

Static Public Member Functions

static bool classof (const PreprocessedEntity *PE)

Additional Inherited Members

Public Types inherited from clang::PreprocessedEntity
enum  EntityKind {
  InvalidKind , MacroExpansionKind , MacroDefinitionKind , InclusionDirectiveKind ,
  FirstPreprocessingDirective = MacroDefinitionKind , LastPreprocessingDirective = InclusionDirectiveKind
}
 The kind of preprocessed entity an object describes. More...
Protected Member Functions inherited from clang::PreprocessedEntity
 PreprocessedEntity (EntityKind Kind, SourceRange Range)

Detailed Description

Records the location of a macro expansion.

Definition at line 168 of file PreprocessingRecord.h.

Constructor & Destructor Documentation

◆ MacroExpansion() [1/2]

clang::MacroExpansion::MacroExpansion ( IdentifierInfo * BuiltinName,
SourceRange Range )
inline

◆ MacroExpansion() [2/2]

clang::MacroExpansion::MacroExpansion ( MacroDefinitionRecord * Definition,
SourceRange Range )
inline

Member Function Documentation

◆ classof()

◆ getDefinition()

MacroDefinitionRecord * clang::MacroExpansion::getDefinition ( ) const
inline

The definition of the macro being expanded.

May return null if this is a builtin macro.

Definition at line 194 of file PreprocessingRecord.h.

Referenced by getName().

◆ getName()

const IdentifierInfo * clang::MacroExpansion::getName ( ) const
inline

The name of the macro being expanded.

Definition at line 186 of file PreprocessingRecord.h.

References clang::cast(), getDefinition(), and clang::IdentifierInfo::getName().

◆ isBuiltinMacro()

bool clang::MacroExpansion::isBuiltinMacro ( ) const
inline

True if it is a builtin macro.

Definition at line 183 of file PreprocessingRecord.h.

References clang::isa().


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