diff options
| author | David Blaikie <dblaikie@gmail.com> | 2015-05-11 22:20:48 +0000 | 
|---|---|---|
| committer | David Blaikie <dblaikie@gmail.com> | 2015-05-11 22:20:48 +0000 | 
| commit | 46c561c19e5b9d8bb77f7b98f0803b4c386243e4 (patch) | |
| tree | 909bcba8eb8b0e82cdd117f1206240d5e417c6d4 /llvm/lib/Target | |
| parent | e452e271293f282d3cdaf0782ec2820c0f7e4d48 (diff) | |
| download | bcm5719-llvm-46c561c19e5b9d8bb77f7b98f0803b4c386243e4.tar.gz bcm5719-llvm-46c561c19e5b9d8bb77f7b98f0803b4c386243e4.zip  | |
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
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/TargetMachineC.cpp | 15 | 
1 files changed, 6 insertions, 9 deletions
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,  | 

