From e57f8e90387f7ceeaa196e0676104d532cb5c248 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 12 Sep 2016 12:06:50 +0200 Subject: [PATCH] GccToolChain: Redetect ABIs if the targetAbi is invalid Fixes issues with broken ABIs in the settings, like you get when going from QtCreator 4.2 to 4.1 and back. Task-number: QTCREATORBUG-16823 Change-Id: Ibcab5d3bc8255dfeb647e512f5db1d94155f9d9a Reviewed-by: Eike Ziller --- src/plugins/projectexplorer/gcctoolchain.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp index fe30c81e8f9..935643c2f6c 100644 --- a/src/plugins/projectexplorer/gcctoolchain.cpp +++ b/src/plugins/projectexplorer/gcctoolchain.cpp @@ -617,10 +617,7 @@ IOutputParser *GccToolChain::outputParser() const void GccToolChain::resetToolChain(const FileName &path) { - if (path == m_compilerCommand) - return; - - bool resetDisplayName = displayName() == defaultDisplayName(); + bool resetDisplayName = (displayName() == defaultDisplayName()); setCompilerCommand(path); @@ -710,14 +707,18 @@ bool GccToolChain::fromMap(const QVariantMap &data) m_platformLinkerFlags = data.value(QLatin1String(compilerPlatformLinkerFlagsKeyC)).toStringList(); m_targetAbi = Abi(data.value(QLatin1String(targetAbiKeyC)).toString()); m_originalTargetTriple = data.value(QLatin1String(originalTargetTripleKeyC)).toString(); - QStringList abiList = data.value(QLatin1String(supportedAbisKeyC)).toStringList(); + const QStringList abiList = data.value(QLatin1String(supportedAbisKeyC)).toStringList(); m_supportedAbis.clear(); - foreach (const QString &a, abiList) { + for (const QString &a : abiList) { Abi abi(a); if (!abi.isValid()) continue; m_supportedAbis.append(abi); } + + if (!m_targetAbi.isValid()) + resetToolChain(m_compilerCommand); + return true; }