diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-12 01:39:54 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-12 01:39:54 +0000 |
commit | 928e9096cb65d240b20c43ffdb9decf2f2a4888c (patch) | |
tree | c7c5d620f5e968b1af053a9e7b2fb21ef69e0d8f | |
parent | c523d8e88c94113717f12381cd44c2a3699e9d10 (diff) | |
download | bcm5719-llvm-928e9096cb65d240b20c43ffdb9decf2f2a4888c.tar.gz bcm5719-llvm-928e9096cb65d240b20c43ffdb9decf2f2a4888c.zip |
add a ppcallback hook for macro definitions.
llvm-svn: 68883
-rw-r--r-- | clang/include/clang/Lex/PPCallbacks.h | 9 | ||||
-rw-r--r-- | clang/lib/Lex/PPDirectives.cpp | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/clang/include/clang/Lex/PPCallbacks.h b/clang/include/clang/Lex/PPCallbacks.h index cd7c5e42156..d2e3f353cbf 100644 --- a/clang/include/clang/Lex/PPCallbacks.h +++ b/clang/include/clang/Lex/PPCallbacks.h @@ -55,10 +55,15 @@ public: const std::string &Str) { } - /// MacroExpands - This is called Preprocessor::HandleMacroExpandedIdentifier - /// when a macro invocation is found. + /// MacroExpands - This is called by + /// Preprocessor::HandleMacroExpandedIdentifier when a macro invocation is + /// found. virtual void MacroExpands(const Token &Id, const MacroInfo* MI) { } + + /// MacroDefined - This hook is called whenever a macro definition is seen. + virtual void MacroDefined(const IdentifierInfo *II, const MacroInfo *MI) { + } }; } // end namespace clang diff --git a/clang/lib/Lex/PPDirectives.cpp b/clang/lib/Lex/PPDirectives.cpp index ba321a7f673..52f673c6d3a 100644 --- a/clang/lib/Lex/PPDirectives.cpp +++ b/clang/lib/Lex/PPDirectives.cpp @@ -1402,6 +1402,10 @@ void Preprocessor::HandleDefineDirective(Token &DefineTok) { } setMacroInfo(MacroNameTok.getIdentifierInfo(), MI); + + // If the callbacks want to know, tell them about the macro definition. + if (Callbacks) + Callbacks->MacroDefined(MacroNameTok.getIdentifierInfo(), MI); } /// HandleUndefDirective - Implements #undef. |