From a408bcfd3d05a071fb546c5986643ea2f0332ea2 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sat, 29 Aug 2020 23:34:18 +0300 Subject: Clang: Add conditions for adding exceptions flag For GCC it can be deduced from the compiler flags, so no correction is needed. For MSVC it can be deduced from the detected defines. Amends 26693e82126de15145a04c3428a10f6c15120532. Change-Id: Ie4850f328a2afdb3e5158c58f8c30a2644d9c592 Reviewed-by: Christian Kandeler --- src/plugins/cpptools/compileroptionsbuilder.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/plugins/cpptools/compileroptionsbuilder.cpp') diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 0192386ddb..49457718a7 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -35,6 +35,7 @@ #include #include +#include #include #include #include @@ -137,7 +138,7 @@ QStringList CompilerOptionsBuilder::build(ProjectFile::Kind fileKind, addTargetTriple(); updateFileLanguage(fileKind); addLanguageVersionAndExtensions(); - enableExceptions(); + addMsvcExceptions(); addPrecompiledHeaderOptions(usePrecompiledHeaders); addProjectConfigFileInclude(); @@ -273,6 +274,17 @@ void CompilerOptionsBuilder::addCompilerFlags() add(m_compilerFlags.flags); } +void CompilerOptionsBuilder::addMsvcExceptions() +{ + if (!m_clStyle) + return; + if (Utils::anyOf(m_projectPart.toolChainMacros, [](const ProjectExplorer::Macro ¯o) { + return macro.key == "_CPPUNWIND"; + })) { + enableExceptions(); + } +} + void CompilerOptionsBuilder::enableExceptions() { // With "--driver-mode=cl" exceptions are disabled (clang 8). -- cgit v1.2.1