From 8f6eb41cad805556779c2bac67bdbead68fffda1 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 11 Oct 2019 15:01:09 +0200 Subject: [PATCH] Clang: Ensure that platform codegen flags get also filtered Leave the function addExtraCodeModelFlags() around as it's used by ClangPchManager::ProjectUpdater::toolChainArguments(). This allows us to filter out excess target arguments in a follow-up change. Change-Id: I742d713dd1ca6c391ba77c52555dcf4e94cc2ff9 Reviewed-by: Cristian Adam Reviewed-by: Nikolai Kosjar --- src/plugins/cpptools/compileroptionsbuilder.cpp | 5 ++--- tests/unit/unittest/compileroptionsbuilder-test.cpp | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 7fde0b3a578..f13f0f1a26e 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -140,8 +140,6 @@ QStringList CompilerOptionsBuilder::build(ProjectFile::Kind fileKind, addPrecompiledHeaderOptions(usePrecompiledHeaders); addProjectConfigFileInclude(); - addExtraCodeModelFlags(); - addMsvcCompatibilityVersion(); addProjectMacros(); undefineClangVersionMacrosForMsvc(); @@ -727,7 +725,8 @@ void CompilerOptionsBuilder::evaluateCompilerFlags() const Core::Id &toolChain = m_projectPart.toolchainType; bool containsDriverMode = false; bool skipNext = false; - for (const QString &option : m_projectPart.compilerFlags) { + const QStringList allFlags = m_projectPart.compilerFlags + m_projectPart.extraCodeModelFlags; + for (const QString &option : allFlags) { if (skipNext) { skipNext = false; continue; diff --git a/tests/unit/unittest/compileroptionsbuilder-test.cpp b/tests/unit/unittest/compileroptionsbuilder-test.cpp index 234fc0987cd..df110727071 100644 --- a/tests/unit/unittest/compileroptionsbuilder-test.cpp +++ b/tests/unit/unittest/compileroptionsbuilder-test.cpp @@ -593,14 +593,14 @@ TEST_F(CompilerOptionsBuilder, BuildAllOptions) ASSERT_THAT(compilerOptionsBuilder.options(), ElementsAre("-nostdinc", "-nostdinc++", + "-arch", + "x86_64", "-fsyntax-only", "-m64", "--target=x86_64-apple-darwin10", "-x", "c++", "-std=c++17", - "-arch", - "x86_64", "-DprojectFoo=projectBar", "-I", IsPartOfHeader("wrappedQtHeaders"), "-I", IsPartOfHeader(toNative("wrappedQtHeaders/QtCore").toStdString()),