clang 24.0.0git
clang::MacroDefinition Class Reference

A description of the current definition of a macro. More...

#include "clang/Lex/MacroInfo.h"

Public Member Functions

 MacroDefinition ()=default
 MacroDefinition (DefMacroDirective *MD, ModuleMacroInfo Info)
 operator bool () const
 Determine whether there is a definition of this macro.
MacroInfo * getMacroInfo () const
 Get the MacroInfo that should be used for this definition.
bool isAmbiguous () const
 true if the definition is ambiguous, false otherwise.
DefMacroDirective * getLocalDirective () const
 Get the latest non-imported, non-#undef'd macro definition for this macro.
ArrayRef< ModuleMacro * > getModuleMacros () const
 Get the active module macros for this macro.
template<typename Fn>
void forAllDefinitions (Fn F) const

Detailed Description

A description of the current definition of a macro.

The definition of a macro comprises a set of (at least one) defining entities, which are either local MacroDirectives or imported ModuleMacros.

Definition at line 590 of file MacroInfo.h.

Constructor & Destructor Documentation

◆ MacroDefinition() [1/2]

clang::MacroDefinition::MacroDefinition ( )
default

◆ MacroDefinition() [2/2]

clang::MacroDefinition::MacroDefinition ( DefMacroDirective * MD,
ModuleMacroInfo Info )
inline

Definition at line 596 of file MacroInfo.h.

Member Function Documentation

◆ forAllDefinitions()

template<typename Fn>
void clang::MacroDefinition::forAllDefinitions ( Fn F) const
inline

Definition at line 626 of file MacroInfo.h.

References getLocalDirective(), and getModuleMacros().

◆ getLocalDirective()

DefMacroDirective * clang::MacroDefinition::getLocalDirective ( ) const
inline

Get the latest non-imported, non-#undef'd macro definition for this macro.

Definition at line 619 of file MacroInfo.h.

Referenced by forAllDefinitions(), getMacroInfo(), and operator bool().

◆ getMacroInfo()

MacroInfo * clang::MacroDefinition::getMacroInfo ( ) const
inline

Get the MacroInfo that should be used for this definition.

Definition at line 606 of file MacroInfo.h.

References getLocalDirective().

Referenced by DoPrintMacros(), indexPreprocessorMacros(), and clang::NoTrivialPPDirectiveTracer::MacroExpands().

◆ getModuleMacros()

ArrayRef< ModuleMacro * > clang::MacroDefinition::getModuleMacros ( ) const
inline

Get the active module macros for this macro.

Definition at line 624 of file MacroInfo.h.

Referenced by forAllDefinitions().

◆ isAmbiguous()

bool clang::MacroDefinition::isAmbiguous ( ) const
inline

true if the definition is ambiguous, false otherwise.

Definition at line 615 of file MacroInfo.h.

◆ operator bool()

clang::MacroDefinition::operator bool ( ) const
inlineexplicit

Determine whether there is a definition of this macro.

Definition at line 601 of file MacroInfo.h.

References getLocalDirective().


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