aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoy Jacobson <roi.jacobson1@gmail.com>2022-08-31 22:27:09 +0300
committerTobias Hieta <tobias@hieta.se>2022-09-01 11:00:15 +0200
commit0b644cb1cc35dc29420b36c6715518d7430c6538 (patch)
treedd633895e6cba9554a4c0f98d5a8742f9a3daaff
parent[docs] Add "Standard C++ Modules" (diff)
downloadllvm-project-0b644cb1cc35dc29420b36c6715518d7430c6538.tar.gz
llvm-project-0b644cb1cc35dc29420b36c6715518d7430c6538.tar.bz2
llvm-project-0b644cb1cc35dc29420b36c6715518d7430c6538.zip
[Frontend] Restore Preprocessor::getPredefines()
https://reviews.llvm.org/rG6bbf51f3ed59ae37f0fec729f25af002111c9e74 from May removed Preprocessor::getPredefines() from Clang's API, presumably as a cleanup because this method is unused in the LLVM codebase. However, it was/is used by a small number of third-party tools and is pretty harmless, so this patch adds it back and documents why it's here. The issue was raised in https://github.com/llvm/llvm-project/issues/57483, it would be nice to be able to land it into Clang 15 as it breaks those third-party tools and we can't easily add it back in bug fix releases. Reviewed By: brad.king, thieta Differential Revision: https://reviews.llvm.org/D133044 (cherry picked from commit bb9dedce5d01f5608acd784942481f386c710c0d)
-rw-r--r--clang/include/clang/Lex/Preprocessor.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/include/clang/Lex/Preprocessor.h b/clang/include/clang/Lex/Preprocessor.h
index 79454b5addea..bed486658ee0 100644
--- a/clang/include/clang/Lex/Preprocessor.h
+++ b/clang/include/clang/Lex/Preprocessor.h
@@ -1353,6 +1353,11 @@ public:
StringRef getLastMacroWithSpelling(SourceLocation Loc,
ArrayRef<TokenValue> Tokens) const;
+ /// Get the predefines for this processor.
+ /// Used by some third-party tools to inspect and add predefines (see
+ /// https://github.com/llvm/llvm-project/issues/57483).
+ const std::string &getPredefines() const { return Predefines; }
+
/// Set the predefines for this Preprocessor.
///
/// These predefines are automatically injected when parsing the main file.