aboutsummaryrefslogtreecommitdiffstats
path: root/src/PreProcessorVisitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/PreProcessorVisitor.cpp')
-rw-r--r--src/PreProcessorVisitor.cpp9
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;