simplify isTarget64Bit

This commit is contained in:
Roy Qu 2022-12-11 22:43:23 +08:00
parent 79931d73d5
commit 325fe71567
1 changed files with 34 additions and 40 deletions

View File

@ -3147,14 +3147,13 @@ QString Settings::CompilerSets::getKeyFromCompilerCompatibleIndex(int idx) const
bool Settings::CompilerSets::isTarget64Bit(const QString &target)
{
static const auto generateSortedTargets = []() -> decltype(auto) {
/* Fetched from LLVM 15.0.6's arch parser,
* `Triple::ArchType parseArch(StringRef ArchName)`
* in `llvm/lib/Support/Triple.cpp`.
* The following non-CPU targets are not included:
* nvptx64, le64, amdil64, hsail64, spir64, spirv64, renderscript64.
*/
static QString targets[] = {
QSet<QString> targets {
// x86_64
"amd64", "x86_64", "x86_64h",
// ppc64
@ -3182,12 +3181,7 @@ bool Settings::CompilerSets::isTarget64Bit(const QString &target)
// loongarch64
"loongarch64",
};
std::sort(std::begin(targets), std::end(targets));
return (targets); // parentheses required for type deduction
};
static const auto &common64BitTargets = generateSortedTargets();
bool is64Bit = std::binary_search(std::begin(common64BitTargets), std::end(common64BitTargets), target);
return is64Bit;
return targets.contains(target);
}
Settings::Environment::Environment(Settings *settings):_Base(settings, SETTING_ENVIRONMENT)