From 26693e82126de15145a04c3428a10f6c15120532 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Thu, 19 Dec 2019 11:58:24 +0100 Subject: 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 --- src/plugins/cpptools/compileroptionsbuilder.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/plugins/cpptools/compileroptionsbuilder.cpp') diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index ee534757ea..3804c3feb2 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 -- cgit v1.2.1