diff options
author | Eike Ziller <eike.ziller@qt.io> | 2017-08-17 17:29:25 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2017-08-17 17:29:25 +0200 |
commit | a0a42ff7bd862887bce281814f65179d88eb1de5 (patch) | |
tree | b2182dcbbb1bef16fec1c600b8cae67e327e6ca8 /src/plugins/clangcodemodel/clangdiagnosticfilter.cpp | |
parent | cf1edc1fb536287c1cb9760014c5dab9690bbf6a (diff) | |
parent | a951448c4dceca637992ea29df832de190f22130 (diff) |
Merge remote-tracking branch 'origin/4.4'
Conflicts:
src/plugins/debugger/gdb/gdbengine.cpp
Change-Id: I8a7c8ca07d6d6005f5d39b8f1477ebbc7a299fbf
Diffstat (limited to 'src/plugins/clangcodemodel/clangdiagnosticfilter.cpp')
-rw-r--r-- | src/plugins/clangcodemodel/clangdiagnosticfilter.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/plugins/clangcodemodel/clangdiagnosticfilter.cpp b/src/plugins/clangcodemodel/clangdiagnosticfilter.cpp index 2a7d92b987b..78126eea69e 100644 --- a/src/plugins/clangcodemodel/clangdiagnosticfilter.cpp +++ b/src/plugins/clangcodemodel/clangdiagnosticfilter.cpp @@ -45,8 +45,8 @@ bool isWarningOrNote(ClangBackEnd::DiagnosticSeverity severity) Q_UNREACHABLE(); } -bool isBlackListedDiagnostic(const ClangBackEnd::DiagnosticContainer &diagnostic, - bool isHeaderFile) +bool isBlackListedHeaderDiagnostic(const ClangBackEnd::DiagnosticContainer &diagnostic, + bool isHeaderFile) { static const Utf8StringVector blackList{ Utf8StringLiteral("warning: #pragma once in main file"), @@ -56,6 +56,21 @@ bool isBlackListedDiagnostic(const ClangBackEnd::DiagnosticContainer &diagnostic return isHeaderFile && blackList.contains(diagnostic.text()); } +bool isBlackListedQtDiagnostic(const ClangBackEnd::DiagnosticContainer &diagnostic) +{ + static const Utf8StringVector blackList{ + // From Q_OBJECT: + Utf8StringLiteral("warning: " + "'metaObject' overrides a member function but is not marked 'override'"), + Utf8StringLiteral("warning: " + "'qt_metacast' overrides a member function but is not marked 'override'"), + Utf8StringLiteral("warning: " + "'qt_metacall' overrides a member function but is not marked 'override'"), + }; + + return blackList.contains(diagnostic.text()); +} + template <class Condition> QVector<ClangBackEnd::DiagnosticContainer> filterDiagnostics(const QVector<ClangBackEnd::DiagnosticContainer> &diagnostics, @@ -97,7 +112,8 @@ void ClangDiagnosticFilter::filterDocumentRelatedWarnings( const auto isLocalWarning = [this, isHeaderFile] (const ClangBackEnd::DiagnosticContainer &diagnostic) { return isWarningOrNote(diagnostic.severity()) - && !isBlackListedDiagnostic(diagnostic, isHeaderFile) + && !isBlackListedHeaderDiagnostic(diagnostic, isHeaderFile) + && !isBlackListedQtDiagnostic(diagnostic) && diagnostic.location().filePath() == m_filePath; }; |