diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-12-19 11:58:24 +0100 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-12-20 22:46:02 +0000 |
commit | 26693e82126de15145a04c3428a10f6c15120532 (patch) | |
tree | 271d565fff685b47a02645c487b8d1fed8e53687 /src/plugins/cpptools | |
parent | 4fdd9446179df772c86b0e022712595004272dc8 (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.cpp | 12 | ||||
-rw-r--r-- | src/plugins/cpptools/compileroptionsbuilder.h | 1 |
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); |