summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2017-06-15 17:40:32 +0200
committerNikolai Kosjar <nikolai.kosjar@qt.io>2017-06-16 07:11:43 +0000
commit0bc782c4680dfa99a1da03fca67c68322f585965 (patch)
treec750fd97e3fbb3598b58b998ad07cbef3fea0656 /src
parent1623af0da5bc760c00bea1f6a5025b30ac110081 (diff)
downloadqt-creator-0bc782c4680dfa99a1da03fca67c68322f585965.tar.gz
Clang: Add CLANG-UPGRADE-CHECK marker
...for things to watch out on an upgrade. Change-Id: I75b77a3c8fa238939b625d084c7db220ab429319 Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/clangcodemodel/clangutils.cpp2
-rw-r--r--src/plugins/clangstaticanalyzer/clangstaticanalyzerutils.h1
-rw-r--r--src/plugins/cpptools/compileroptionsbuilder.cpp3
-rw-r--r--src/shared/clang/clang_installation.pri2
-rw-r--r--src/tools/clangbackend/ipcsource/highlightingmark.cpp1
5 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp
index 8a219bd5b3..e436ec275f 100644
--- a/src/plugins/clangcodemodel/clangutils.cpp
+++ b/src/plugins/clangcodemodel/clangutils.cpp
@@ -169,6 +169,8 @@ void setLastSentDocumentRevision(const QString &filePath, uint revision)
document->sendTracker().setLastSentRevision(int(revision));
}
+// CLANG-UPGRADE-CHECK: Workaround still needed?
+// Remove once clang reports correct columns for lines with multi-byte utf8.
int extraUtf8CharsShift(const QString &str, int column)
{
int shift = 0;
diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerutils.h b/src/plugins/clangstaticanalyzer/clangstaticanalyzerutils.h
index bf90e3a5a0..e170d8b7f0 100644
--- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerutils.h
+++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerutils.h
@@ -45,6 +45,7 @@ QString clangExecutableFromSettings(Core::Id toolchainType, bool *isValid);
QString createFullLocationString(const Debugger::DiagnosticLocation &location);
+// CLANG-UPGRADE-CHECK: Adapt minimum version numbers.
class ClangExecutableVersion : public QVersionNumber {
public:
ClangExecutableVersion() : QVersionNumber(-1, -1, -1) {}
diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp
index d65b7caff6..e21fedef4c 100644
--- a/src/plugins/cpptools/compileroptionsbuilder.cpp
+++ b/src/plugins/cpptools/compileroptionsbuilder.cpp
@@ -340,6 +340,7 @@ void CompilerOptionsBuilder::addMsvcCompatibilityVersion()
static QStringList languageFeatureMacros()
{
+ // CLANG-UPGRADE-CHECK: Update known language features macros.
// Collected with:
// $ CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
// $ D:\usr\llvm-3.8.0\bin\clang++.exe -fms-compatibility-version=19 -std=c++1y -dM -E D:\empty.cpp | grep __cpp_
@@ -389,7 +390,7 @@ void CompilerOptionsBuilder::undefineCppLanguageFeatureMacrosForMsvc2015()
void CompilerOptionsBuilder::addDefineFloat128ForMingw()
{
- // TODO: Remove once this is fixed in clang >= 3.9.
+ // CLANG-UPGRADE-CHECK: Workaround still needed?
// https://llvm.org/bugs/show_bug.cgi?id=30685
if (m_projectPart.toolchainType == ProjectExplorer::Constants::MINGW_TOOLCHAIN_TYPEID)
addDefine("#define __float128 void");
diff --git a/src/shared/clang/clang_installation.pri b/src/shared/clang/clang_installation.pri
index 7ef42f2911..1d62221769 100644
--- a/src/shared/clang/clang_installation.pri
+++ b/src/shared/clang/clang_installation.pri
@@ -110,7 +110,7 @@ isEmpty(QTC_NO_CLANG_LIBTOOLING) {
}
isEmpty(LLVM_VERSION): error("Cannot determine clang version at $$LLVM_INSTALL_DIR")
-!versionIsAtLeast($$LLVM_VERSION, 3, 9, 0): {
+!versionIsAtLeast($$LLVM_VERSION, 3, 9, 0): { # CLANG-UPGRADE-CHECK: Adapt minimum version numbers.
error("LLVM/Clang version >= 3.9.0 required, version provided: $$LLVM_VERSION")
}
diff --git a/src/tools/clangbackend/ipcsource/highlightingmark.cpp b/src/tools/clangbackend/ipcsource/highlightingmark.cpp
index 2a648153aa..58a8a298ce 100644
--- a/src/tools/clangbackend/ipcsource/highlightingmark.cpp
+++ b/src/tools/clangbackend/ipcsource/highlightingmark.cpp
@@ -161,6 +161,7 @@ void HighlightingMark::overloadedDeclRefKind(const Cursor &cursor)
{
types.mainHighlightingType = HighlightingType::Function;
+ // CLANG-UPGRADE-CHECK: Workaround still needed?
// Workaround https://bugs.llvm.org//show_bug.cgi?id=33256 - SomeType in
// "using N::SomeType" is mistakenly considered as a CXCursor_OverloadedDeclRef.
if (cursor.overloadedDeclarationsCount() >= 1