diff options
-rw-r--r-- | Lex/Preprocessor.cpp | 2 | ||||
-rw-r--r-- | include/clang/Lex/Preprocessor.h | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/Lex/Preprocessor.cpp b/Lex/Preprocessor.cpp index 79b0d62edb..86156a0772 100644 --- a/Lex/Preprocessor.cpp +++ b/Lex/Preprocessor.cpp @@ -109,6 +109,8 @@ Preprocessor::~Preprocessor() { // Delete the scratch buffer info. delete ScratchBuf; + + delete Callbacks; } /// Diag - Forwarding function for diagnostics. This emits a diagnostic at diff --git a/include/clang/Lex/Preprocessor.h b/include/clang/Lex/Preprocessor.h index 717f865b60..98edf5af7a 100644 --- a/include/clang/Lex/Preprocessor.h +++ b/include/clang/Lex/Preprocessor.h @@ -15,6 +15,7 @@ #define LLVM_CLANG_LEX_PREPROCESSOR_H #include "clang/Lex/Lexer.h" +#include "clang/Lex/PPCallbacks.h" #include "clang/Lex/TokenLexer.h" #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/SourceLocation.h" @@ -176,10 +177,12 @@ public: /// expansions going on at the time. Lexer *getCurrentFileLexer() const; - /// getPPCallbacks/SetPPCallbacks - Accessors for preprocessor callbacks. - /// + /// getPPCallbacks/setPPCallbacks - Accessors for preprocessor callbacks. + /// Note that this class takes ownership of any PPCallbacks object given to + /// it. PPCallbacks *getPPCallbacks() const { return Callbacks; } void setPPCallbacks(PPCallbacks *C) { + delete Callbacks; Callbacks = C; } |