diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
index 75f4f025736e118f37b0e90dbec52b8b6edb65dd..1ead54a811a4cd47a5fecb649aaa1b7c9b93b334 100644
--- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
+++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
@@ -263,6 +263,13 @@ private:
         return CompilerOptionsBuilder::defineOption();
     }
 
+    QString undefineOption() const override
+    {
+        if (m_isMsvcToolchain)
+            return QLatin1String("/U");
+        return CompilerOptionsBuilder::undefineOption();
+    }
+
     void enableExceptions() override
     {
         if (m_isMsvcToolchain)
diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp
index 6f2991fea065bb8cb38fbe2a45aebd817504d9ef..f3b89c27f6b314ac7654ecea61a970987629d303 100644
--- a/src/plugins/cpptools/compileroptionsbuilder.cpp
+++ b/src/plugins/cpptools/compileroptionsbuilder.cpp
@@ -342,7 +342,7 @@ void CompilerOptionsBuilder::undefineCppLanguageFeatureMacrosForMsvc2015()
         // Undefine the language feature macros that are pre-defined in clang-cl 3.8.0,
         // but not in MSVC2015's cl.exe.
         foreach (const QString &macroName, languageFeatureMacros())
-            m_options.append(QLatin1String("/U") + macroName);
+            m_options.append(undefineOption() + macroName);
     }
 }
 
@@ -364,6 +364,11 @@ QString CompilerOptionsBuilder::defineOption() const
     return QLatin1String("-D");
 }
 
+QString CompilerOptionsBuilder::undefineOption() const
+{
+    return QLatin1String("-U");
+}
+
 static bool isGccOrMinGwToolchain(const Core::Id &toolchainType)
 {
     return toolchainType == ProjectExplorer::Constants::GCC_TOOLCHAIN_TYPEID
diff --git a/src/plugins/cpptools/compileroptionsbuilder.h b/src/plugins/cpptools/compileroptionsbuilder.h
index 34c7103f1b51cdfafeccac9b908b8e6475f12ed1..a4aec5afdd922ee50fa8e4eb8923994d21e7bcda 100644
--- a/src/plugins/cpptools/compileroptionsbuilder.h
+++ b/src/plugins/cpptools/compileroptionsbuilder.h
@@ -60,6 +60,7 @@ protected:
     virtual bool excludeHeaderPath(const QString &headerPath) const;
 
     virtual QString defineOption() const;
+    virtual QString undefineOption() const;
     virtual QString includeOption() const;
 
     const ProjectPart m_projectPart;