diff options
Diffstat (limited to 'src/PreProcessorVisitor.cpp')
-rw-r--r-- | src/PreProcessorVisitor.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/PreProcessorVisitor.cpp b/src/PreProcessorVisitor.cpp index 2ddf9ffd..b2a5a7af 100644 --- a/src/PreProcessorVisitor.cpp +++ b/src/PreProcessorVisitor.cpp @@ -20,6 +20,7 @@ */ #include "PreProcessorVisitor.h" +#include "MacroUtils.h" #include <clang/Frontend/CompilerInstance.h> #include <clang/Lex/Preprocessor.h> @@ -35,6 +36,9 @@ PreProcessorVisitor::PreProcessorVisitor(const clang::CompilerInstance &ci) { Preprocessor &pi = m_ci.getPreprocessor(); pi.addPPCallbacks(std::unique_ptr<PPCallbacks>(this)); + + // This catches -DQT_NO_KEYWORDS passed to compiler. In MacroExpands() we catch when defined via in code + m_isQtNoKeywords = clazy::isPredefined(ci.getPreprocessorOpts(), "QT_NO_KEYWORDS"); } bool PreProcessorVisitor::isBetweenQtNamespaceMacros(SourceLocation loc) @@ -130,6 +134,11 @@ void PreProcessorVisitor::MacroExpands(const Token &MacroNameTok, const MacroDef return; } + if (!m_isQtNoKeywords && ii->getName() == "QT_NO_KEYWORDS") { + m_isQtNoKeywords = true; + return; + } + if (m_qtVersion != -1) return; |