diff options
Diffstat (limited to 'include/clang/Lex/MacroInfo.h')
-rw-r--r-- | include/clang/Lex/MacroInfo.h | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/include/clang/Lex/MacroInfo.h b/include/clang/Lex/MacroInfo.h index b381e0f..8775d39 100644 --- a/include/clang/Lex/MacroInfo.h +++ b/include/clang/Lex/MacroInfo.h @@ -39,10 +39,11 @@ class MacroInfo { IdentifierInfo **ArgumentList; unsigned NumArguments; - /// \brief The location at which this macro was exported from its module. + /// \brief The location at which this macro was either explicitly exported + /// from its module or marked as private. /// - /// If invalid, this macro has not been explicitly exported. - SourceLocation ExportLocation; + /// If invalid, this macro has not been explicitly given any visibility. + SourceLocation VisibilityLocation; /// ReplacementTokens - This is the list of tokens that the macro is defined /// to. @@ -97,6 +98,9 @@ private: /// \brief Must warn if the macro is unused at the end of translation unit. bool IsWarnIfUnused : 1; + /// \brief Whether the macro has public (when described in a module). + bool IsPublic : 1; + ~MacroInfo() { assert(ArgumentList == 0 && "Didn't call destroy before dtor!"); } @@ -279,17 +283,18 @@ public: } /// \brief Set the export location for this macro. - void setExportLocation(SourceLocation ExportLoc) { - ExportLocation = ExportLoc; + void setVisibility(bool Public, SourceLocation Loc) { + VisibilityLocation = Loc; + IsPublic = Public; } - /// \brief Determine whether this macro was explicitly exported from its + /// \brief Determine whether this macro is part of the public API of its /// module. - bool isExported() const { return ExportLocation.isValid(); } + bool isPublic() const { return IsPublic; } - /// \brief Determine the location where this macro was explicitly exported - /// from its module. - SourceLocation getExportLocation() { return ExportLocation; } + /// \brief Determine the location where this macro was explicitly made + /// public or private within its module. + SourceLocation getVisibilityLocation() { return VisibilityLocation; } private: unsigned getDefinitionLengthSlow(SourceManager &SM) const; |