clang 23.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.
MacroInfogetMacroInfo () const
 Get the MacroInfo that should be used for this definition.
bool isAmbiguous () const
 true if the definition is ambiguous, false otherwise.
DefMacroDirectivegetLocalDirective () 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 595 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 601 of file MacroInfo.h.

Member Function Documentation

◆ forAllDefinitions()

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

Definition at line 631 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 624 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 611 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 629 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 620 of file MacroInfo.h.

◆ operator bool()

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

Determine whether there is a definition of this macro.

Definition at line 606 of file MacroInfo.h.

References getLocalDirective().


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