aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cpptools
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2019-12-19 11:58:24 +0100
committerNikolai Kosjar <nikolai.kosjar@qt.io>2019-12-20 22:46:02 +0000
commit26693e82126de15145a04c3428a10f6c15120532 (patch)
tree271d565fff685b47a02645c487b8d1fed8e53687 /src/plugins/cpptools
parent4fdd9446179df772c86b0e022712595004272dc8 (diff)
Revert "Clang: Stop enabling exceptions explicitly"
This reverts commit b114f77d8a633341b617a5cadd04e5977beae65d as "--driver-mode=cl" apparently still disables exceptions. Task-number: QTCREATORBUG-23000 Change-Id: I9c49d971fafda5e1aca8445f8921e50f323d368f Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Diffstat (limited to 'src/plugins/cpptools')
-rw-r--r--src/plugins/cpptools/compileroptionsbuilder.cpp12
-rw-r--r--src/plugins/cpptools/compileroptionsbuilder.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp
index ee534757ea1..3804c3feb26 100644
--- a/src/plugins/cpptools/compileroptionsbuilder.cpp
+++ b/src/plugins/cpptools/compileroptionsbuilder.cpp
@@ -136,6 +136,7 @@ QStringList CompilerOptionsBuilder::build(ProjectFile::Kind fileKind,
addTargetTriple();
updateFileLanguage(fileKind);
addLanguageVersionAndExtensions();
+ enableExceptions();
addPrecompiledHeaderOptions(usePrecompiledHeaders);
addProjectConfigFileInclude();
@@ -270,6 +271,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
diff --git a/src/plugins/cpptools/compileroptionsbuilder.h b/src/plugins/cpptools/compileroptionsbuilder.h
index 5b7c682407e..b2c8313771e 100644
--- a/src/plugins/cpptools/compileroptionsbuilder.h
+++ b/src/plugins/cpptools/compileroptionsbuilder.h
@@ -69,6 +69,7 @@ public:
void addExtraCodeModelFlags();
void addPicIfCompilerFlagsContainsIt();
void addCompilerFlags();
+ void enableExceptions();
void insertWrappedQtHeaders();
void addLanguageVersionAndExtensions();
void updateFileLanguage(ProjectFile::Kind fileKind);