diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp index 9771c1115b9..69b487534a0 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp +++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp @@ -439,6 +439,7 @@ public: , m_projectPart(projectPart) { addLanguageOptions(); + addGlobalDiagnosticOptions(); // Before addDiagnosticOptions() so users still can overwrite. addDiagnosticOptions(); addGlobalOptions(); addPrecompiledHeaderOptions(); @@ -519,6 +520,15 @@ private: addXclangArg("-plugin-arg-clang-lazy", checks); } + void addGlobalDiagnosticOptions() + { + m_options.append({ + // Avoid undesired warnings from e.g. Q_OBJECT + QStringLiteral("-Wno-unknown-pragmas"), + QStringLiteral("-Wno-unknown-warning-option") + }); + } + void addGlobalOptions() { if (!m_projectPart.project) diff --git a/src/plugins/cpptools/clangdiagnosticconfigsmodel.cpp b/src/plugins/cpptools/clangdiagnosticconfigsmodel.cpp index 4580e82801d..d06afa909b0 100644 --- a/src/plugins/cpptools/clangdiagnosticconfigsmodel.cpp +++ b/src/plugins/cpptools/clangdiagnosticconfigsmodel.cpp @@ -33,11 +33,6 @@ namespace CppTools { -static QStringList commonWarnings() -{ - return { QStringLiteral("-Wno-unknown-pragmas") }; -} - static void addConfigForQuestionableConstructs(ClangDiagnosticConfigsModel &model) { ClangDiagnosticConfig config; @@ -48,7 +43,7 @@ static void addConfigForQuestionableConstructs(ClangDiagnosticConfigsModel &mode config.setClangOptions(QStringList{ QStringLiteral("-Wall"), QStringLiteral("-Wextra"), - } + commonWarnings()); + }); model.appendOrUpdate(config); } @@ -60,7 +55,7 @@ static void addConfigForPedanticWarnings(ClangDiagnosticConfigsModel &model) config.setDisplayName(QCoreApplication::translate("ClangDiagnosticConfigsModel", "Pedantic Warnings")); config.setIsReadOnly(true); - config.setClangOptions(QStringList{QStringLiteral("-Wpedantic")} + commonWarnings()); + config.setClangOptions(QStringList{QStringLiteral("-Wpedantic")}); model.appendOrUpdate(config); } @@ -86,7 +81,7 @@ static void addConfigForAlmostEveryWarning(ClangDiagnosticConfigsModel &model) QStringLiteral("-Wno-switch-enum"), QStringLiteral("-Wno-missing-prototypes"), // Not optimal for C projects. QStringLiteral("-Wno-used-but-marked-unused"), // e.g. QTest::qWait - } + commonWarnings()); + }); model.appendOrUpdate(config); }