diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp
index 8a219bd5b3f732e4512104544755702eb0bf589a..e436ec275fb1f465144be8a1b1132c38c823479c 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 bf90e3a5a0f79b5ca70eda28613f0ff779372be5..e170d8b7f016b82940b80b664c5810e27ba70f74 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 d65b7caff622a9a8cc64b5c1778533feb748b770..e21fedef4cfc585cc4de1cb6e7bc82696bc573a7 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 7ef42f291191cf4ad8693f0d0808856da9527421..1d62221769a723a2acd332f4a843edddeaa1cb7e 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 2a648153aae90e0e447052a50401f4090ecccfa1..58a8a298ce12a88bc54b1b4a0c043f19d076082a 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