diff options
-rw-r--r-- | include/clang/Lex/Preprocessor.h | 9 | ||||
-rw-r--r-- | lib/Lex/PPLexerChange.cpp | 4 |
2 files changed, 10 insertions, 3 deletions
diff --git a/include/clang/Lex/Preprocessor.h b/include/clang/Lex/Preprocessor.h index 4e57069385..94a7ef45b3 100644 --- a/include/clang/Lex/Preprocessor.h +++ b/include/clang/Lex/Preprocessor.h @@ -247,6 +247,15 @@ public: /// void setMacroInfo(IdentifierInfo *II, MacroInfo *MI); + /// macro_iterator/macro_begin/macro_end - This allows you to walk the current + /// state of the macro table. This visits every currently-defined macro. + typedef llvm::DenseMap<IdentifierInfo*, + MacroInfo*>::const_iterator macro_iterator; + macro_iterator macro_begin() const { return Macros.begin(); } + macro_iterator macro_end() const { return Macros.end(); } + + + const std::string &getPredefines() const { return Predefines; } /// setPredefines - Set the predefines for this Preprocessor. These /// predefines are automatically injected when parsing the main file. diff --git a/lib/Lex/PPLexerChange.cpp b/lib/Lex/PPLexerChange.cpp index 3e02fbd638..244281fde6 100644 --- a/lib/Lex/PPLexerChange.cpp +++ b/lib/Lex/PPLexerChange.cpp @@ -238,11 +238,9 @@ bool Preprocessor::HandleEndOfFile(Token &Result, bool isEndOfMacro) { // This is the end of the top-level file. If the diag::pp_macro_not_used // diagnostic is enabled, look for macros that have not been used. if (Diags.getDiagnosticLevel(diag::pp_macro_not_used) != Diagnostic::Ignored){ - for (llvm::DenseMap<IdentifierInfo*, MacroInfo*>::iterator I = - Macros.begin(), E = Macros.end(); I != E; ++I) { + for (macro_iterator I = macro_begin(), E = macro_end(); I != E; ++I) if (!I->second->isUsed()) Diag(I->second->getDefinitionLoc(), diag::pp_macro_not_used); - } } return true; } |