diff options
Diffstat (limited to 'lib/ExecutionEngine/TargetSelect.cpp')
| -rw-r--r-- | lib/ExecutionEngine/TargetSelect.cpp | 14 | 
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/ExecutionEngine/TargetSelect.cpp b/lib/ExecutionEngine/TargetSelect.cpp index e6679cfb7f740..57f6e08041434 100644 --- a/lib/ExecutionEngine/TargetSelect.cpp +++ b/lib/ExecutionEngine/TargetSelect.cpp @@ -49,21 +49,19 @@ TargetMachine *EngineBuilder::selectTarget(const Triple &TargetTriple,    // Adjust the triple to match what the user requested.    const Target *TheTarget = nullptr;    if (!MArch.empty()) { -    for (TargetRegistry::iterator it = TargetRegistry::begin(), -           ie = TargetRegistry::end(); it != ie; ++it) { -      if (MArch == it->getName()) { -        TheTarget = &*it; -        break; -      } -    } +    auto I = std::find_if( +        TargetRegistry::targets().begin(), TargetRegistry::targets().end(), +        [&](const Target &T) { return MArch == T.getName(); }); -    if (!TheTarget) { +    if (I == TargetRegistry::targets().end()) {        if (ErrorStr)          *ErrorStr = "No available targets are compatible with this -march, "                      "see -version for the available targets.\n";        return nullptr;      } +    TheTarget = &*I; +      // Adjust the triple to match (if known), otherwise stick with the      // requested/host triple.      Triple::ArchType Type = Triple::getArchTypeForLLVMName(MArch);  | 
