Index: llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITTestAPICommon.h =================================================================== --- llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITTestAPICommon.h +++ llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITTestAPICommon.h @@ -21,13 +21,14 @@ #include "llvm/InitializePasses.h" #include "llvm/Support/Host.h" #include "llvm/Support/TargetSelect.h" +#include "llvm/Support/TargetRegistry.h" // Used to skip tests on unsupported architectures and operating systems. // To skip a test, add this macro at the top of a test-case in a suite that // inherits from MCJITTestBase. See MCJITTest.cpp for examples. #define SKIP_UNSUPPORTED_PLATFORM \ do \ - if (!ArchSupportsMCJIT() || !OSSupportsMCJIT()) \ + if (!ArchSupportsMCJIT() || !OSSupportsMCJIT() || !HostCanBeTargeted()) \ return; \ while(0) @@ -52,6 +53,11 @@ HostTriple = Triple::normalize(HostTriple); } + bool HostCanBeTargeted() { + std::string Error; + return TargetRegistry::lookupTarget(HostTriple, Error) != nullptr; + } + /// Returns true if the host architecture is known to support MCJIT bool ArchSupportsMCJIT() { Triple Host(HostTriple);