From 46c561c19e5b9d8bb77f7b98f0803b4c386243e4 Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Mon, 11 May 2015 22:20:48 +0000 Subject: Readdress r236990, use of static members on a non-static variable. The TargetRegistry is just a namespace-like class, instantiated in one place to use a range-based for loop. Instead, expose access to the registry via a range-based 'targets()' function instead. This makes most uses a bit awkward/more verbose - but eventually we should just add a range-based find_if function which will streamline these functions. I'm happy to mkae them a bit awkward in the interim as encouragement to improve the algorithms in time. llvm-svn: 237059 --- llvm/lib/Target/TargetMachineC.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'llvm/lib/Target/TargetMachineC.cpp') diff --git a/llvm/lib/Target/TargetMachineC.cpp b/llvm/lib/Target/TargetMachineC.cpp index 1a5bf163bd9..623b3e8ca32 100644 --- a/llvm/lib/Target/TargetMachineC.cpp +++ b/llvm/lib/Target/TargetMachineC.cpp @@ -47,11 +47,11 @@ inline LLVMTargetRef wrap(const Target * P) { } LLVMTargetRef LLVMGetFirstTarget() { - if(TargetRegistry::begin() == TargetRegistry::end()) { + if (TargetRegistry::targets().begin() == TargetRegistry::targets().end()) { return nullptr; } - const Target* target = &*TargetRegistry::begin(); + const Target *target = &*TargetRegistry::targets().begin(); return wrap(target); } LLVMTargetRef LLVMGetNextTarget(LLVMTargetRef T) { @@ -60,13 +60,10 @@ LLVMTargetRef LLVMGetNextTarget(LLVMTargetRef T) { LLVMTargetRef LLVMGetTargetFromName(const char *Name) { StringRef NameRef = Name; - for (TargetRegistry::iterator IT = TargetRegistry::begin(), - IE = TargetRegistry::end(); IT != IE; ++IT) { - if (IT->getName() == NameRef) - return wrap(&*IT); - } - - return nullptr; + auto I = std::find_if( + TargetRegistry::targets().begin(), TargetRegistry::targets().end(), + [&](const Target &T) { return T.getName() == NameRef; }); + return I != TargetRegistry::targets().end() ? wrap(&*I) : nullptr; } LLVMBool LLVMGetTargetFromTriple(const char* TripleStr, LLVMTargetRef *T, -- cgit v1.2.3