summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/compileroptionsbuilder.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2020-01-03 08:57:33 +0100
committerEike Ziller <eike.ziller@qt.io>2020-01-03 08:57:33 +0100
commit92546d0983278666de1a318d0d192ed09f08be55 (patch)
tree46c3be2f8db47878b1fd14bb78f0aa0e3db147ea /src/plugins/cpptools/compileroptionsbuilder.cpp
parent586c6dd92f8c1533eba4a05551145a06d44a0aae (diff)
parent4a00f53c17989b5eedb59967dd09fa17e229fe39 (diff)
downloadqt-creator-92546d0983278666de1a318d0d192ed09f08be55.tar.gz
Merge remote-tracking branch 'origin/4.11'
Change-Id: I0657cee6b87eea7b3178548bebed85d5ac824519
Diffstat (limited to 'src/plugins/cpptools/compileroptionsbuilder.cpp')
-rw-r--r--src/plugins/cpptools/compileroptionsbuilder.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp
index 1f15ebddda..fcce3d6cc5 100644
--- a/src/plugins/cpptools/compileroptionsbuilder.cpp
+++ b/src/plugins/cpptools/compileroptionsbuilder.cpp
@@ -138,6 +138,7 @@ QStringList CompilerOptionsBuilder::build(ProjectFile::Kind fileKind,
addTargetTriple();
updateFileLanguage(fileKind);
addLanguageVersionAndExtensions();
+ enableExceptions();
addPrecompiledHeaderOptions(usePrecompiledHeaders);
addProjectConfigFileInclude();
@@ -272,6 +273,17 @@ void CompilerOptionsBuilder::addCompilerFlags()
add(m_compilerFlags.flags);
}
+void CompilerOptionsBuilder::enableExceptions()
+{
+ // With "--driver-mode=cl" exceptions are disabled (clang 8).
+ // This is most likely due to incomplete exception support of clang.
+ // However, as we need exception support only in the frontend,
+ // enabling them explicitly should be fine.
+ if (m_projectPart.languageVersion > ::Utils::LanguageVersion::LatestC)
+ add("-fcxx-exceptions");
+ add("-fexceptions");
+}
+
static QString creatorResourcePath()
{
#ifndef UNIT_TESTS