Sfoglia il codice sorgente

Change std::{lower,upper}_bound to llvm::{lower,upper}_bound or llvm::partition_point. NFC

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@365006 91177308-0d34-0410-b5e6-96231b3b80d8
Fangrui Song 6 anni fa
parent
commit
b76b345fe1

+ 2 - 2
include/clang/Serialization/ContinuousRangeMap.h

@@ -73,7 +73,7 @@ public:
   }
   }
 
 
   void insertOrReplace(const value_type &Val) {
   void insertOrReplace(const value_type &Val) {
-    iterator I = std::lower_bound(Rep.begin(), Rep.end(), Val, Compare());
+    iterator I = llvm::lower_bound(Rep, Val, Compare());
     if (I != Rep.end() && I->first == Val.first) {
     if (I != Rep.end() && I->first == Val.first) {
       I->second = Val.second;
       I->second = Val.second;
       return;
       return;
@@ -91,7 +91,7 @@ public:
   const_iterator end() const { return Rep.end(); }
   const_iterator end() const { return Rep.end(); }
 
 
   iterator find(Int K) {
   iterator find(Int K) {
-    iterator I = std::upper_bound(Rep.begin(), Rep.end(), K, Compare());
+    iterator I = llvm::upper_bound(Rep, K, Compare());
     // I points to the first entry with a key > K, which is the range that
     // I points to the first entry with a key > K, which is the range that
     // follows the one containing K.
     // follows the one containing K.
     if (I == Rep.begin())
     if (I == Rep.begin())

+ 2 - 3
lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp

@@ -42,9 +42,8 @@ static bool isEmptyARCMTMacroStatement(NullStmt *S,
     return false;
     return false;
 
 
   SourceManager &SM = Ctx.getSourceManager();
   SourceManager &SM = Ctx.getSourceManager();
-  std::vector<SourceLocation>::iterator
-    I = std::upper_bound(MacroLocs.begin(), MacroLocs.end(), SemiLoc,
-                         BeforeThanCompare<SourceLocation>(SM));
+  std::vector<SourceLocation>::iterator I = llvm::upper_bound(
+      MacroLocs, SemiLoc, BeforeThanCompare<SourceLocation>(SM));
   --I;
   --I;
   SourceLocation
   SourceLocation
       AfterMacroLoc = I->getLocWithOffset(getARCMTMacroName().size());
       AfterMacroLoc = I->getLocWithOffset(getARCMTMacroName().size());

+ 3 - 4
lib/AST/ASTContext.cpp

@@ -228,12 +228,11 @@ RawComment *ASTContext::getRawCommentForDeclNoCache(const Decl *D) const {
 
 
     if (Found) {
     if (Found) {
       Comment = MaybeBeforeDecl + 1;
       Comment = MaybeBeforeDecl + 1;
-      assert(Comment == std::lower_bound(RawComments.begin(), RawComments.end(),
-                                         &CommentAtDeclLoc, Compare));
+      assert(Comment ==
+             llvm::lower_bound(RawComments, &CommentAtDeclLoc, Compare));
     } else {
     } else {
       // Slow path.
       // Slow path.
-      Comment = std::lower_bound(RawComments.begin(), RawComments.end(),
-                                 &CommentAtDeclLoc, Compare);
+      Comment = llvm::lower_bound(RawComments, &CommentAtDeclLoc, Compare);
     }
     }
   }
   }
 
 

+ 2 - 4
lib/AST/DeclCXX.cpp

@@ -1450,10 +1450,8 @@ CXXRecordDecl::getLambdaExplicitTemplateParameters() const {
                              [](const NamedDecl *D) { return !D->isImplicit(); })
                              [](const NamedDecl *D) { return !D->isImplicit(); })
          && "Explicit template params should be ordered before implicit ones");
          && "Explicit template params should be ordered before implicit ones");
 
 
-  const auto ExplicitEnd = std::lower_bound(List->begin(), List->end(), false,
-                                            [](const NamedDecl *D, bool) {
-    return !D->isImplicit();
-  });
+  const auto ExplicitEnd = llvm::partition_point(
+      *List, [](const NamedDecl *D) { return !D->isImplicit(); });
   return llvm::makeArrayRef(List->begin(), ExplicitEnd);
   return llvm::makeArrayRef(List->begin(), ExplicitEnd);
 }
 }
 
 

+ 3 - 4
lib/Basic/Diagnostic.cpp

@@ -205,10 +205,9 @@ DiagnosticsEngine::DiagStateMap::lookup(SourceManager &SrcMgr,
 
 
 DiagnosticsEngine::DiagState *
 DiagnosticsEngine::DiagState *
 DiagnosticsEngine::DiagStateMap::File::lookup(unsigned Offset) const {
 DiagnosticsEngine::DiagStateMap::File::lookup(unsigned Offset) const {
-  auto OnePastIt = std::upper_bound(
-      StateTransitions.begin(), StateTransitions.end(), Offset,
-      [](unsigned Offset, const DiagStatePoint &P) {
-        return Offset < P.Offset;
+  auto OnePastIt =
+      llvm::partition_point(StateTransitions, [=](const DiagStatePoint &P) {
+        return P.Offset <= Offset;
       });
       });
   assert(OnePastIt != StateTransitions.begin() && "missing initial state");
   assert(OnePastIt != StateTransitions.begin() && "missing initial state");
   return OnePastIt[-1].State;
   return OnePastIt[-1].State;

+ 2 - 5
lib/Basic/DiagnosticIDs.cpp

@@ -580,11 +580,8 @@ static bool getDiagnosticsInGroup(diag::Flavor Flavor,
 bool
 bool
 DiagnosticIDs::getDiagnosticsInGroup(diag::Flavor Flavor, StringRef Group,
 DiagnosticIDs::getDiagnosticsInGroup(diag::Flavor Flavor, StringRef Group,
                                      SmallVectorImpl<diag::kind> &Diags) const {
                                      SmallVectorImpl<diag::kind> &Diags) const {
-  auto Found = std::lower_bound(std::begin(OptionTable), std::end(OptionTable),
-                                Group,
-                                [](const WarningOption &LHS, StringRef RHS) {
-                                  return LHS.getName() < RHS;
-                                });
+  auto Found = llvm::partition_point(
+      OptionTable, [=](const WarningOption &O) { return O.getName() < Group; });
   if (Found == std::end(OptionTable) || Found->getName() != Group)
   if (Found == std::end(OptionTable) || Found->getName() != Group)
     return true; // Option not found.
     return true; // Option not found.
 
 

+ 3 - 3
lib/Basic/SourceManager.cpp

@@ -277,9 +277,9 @@ const LineEntry *LineTableInfo::FindNearestLineEntry(FileID FID,
     return &Entries.back();
     return &Entries.back();
 
 
   // Do a binary search to find the maximal element that is still before Offset.
   // Do a binary search to find the maximal element that is still before Offset.
-  std::vector<LineEntry>::const_iterator I =
-    std::upper_bound(Entries.begin(), Entries.end(), Offset);
-  if (I == Entries.begin()) return nullptr;
+  std::vector<LineEntry>::const_iterator I = llvm::upper_bound(Entries, Offset);
+  if (I == Entries.begin())
+    return nullptr;
   return &*--I;
   return &*--I;
 }
 }
 
 

+ 1 - 2
lib/CodeGen/CGBuiltin.cpp

@@ -5076,8 +5076,7 @@ findNeonIntrinsicInMap(ArrayRef<NeonIntrinsicInfo> IntrinsicMap,
   }
   }
 #endif
 #endif
 
 
-  const NeonIntrinsicInfo *Builtin =
-      std::lower_bound(IntrinsicMap.begin(), IntrinsicMap.end(), BuiltinID);
+  const NeonIntrinsicInfo *Builtin = llvm::lower_bound(IntrinsicMap, BuiltinID);
 
 
   if (Builtin != IntrinsicMap.end() && Builtin->BuiltinID == BuiltinID)
   if (Builtin != IntrinsicMap.end() && Builtin->BuiltinID == BuiltinID)
     return Builtin;
     return Builtin;

+ 1 - 1
lib/CodeGen/CGExprConstant.cpp

@@ -288,7 +288,7 @@ Optional<size_t> ConstantAggregateBuilder::splitAt(CharUnits Pos) {
     return Offsets.size();
     return Offsets.size();
 
 
   while (true) {
   while (true) {
-    auto FirstAfterPos = std::upper_bound(Offsets.begin(), Offsets.end(), Pos);
+    auto FirstAfterPos = llvm::upper_bound(Offsets, Pos);
     if (FirstAfterPos == Offsets.begin())
     if (FirstAfterPos == Offsets.begin())
       return 0;
       return 0;
 
 

+ 8 - 8
lib/Frontend/ASTUnit.cpp

@@ -2447,8 +2447,8 @@ void ASTUnit::addFileLevelDecl(Decl *D) {
     return;
     return;
   }
   }
 
 
-  LocDeclsTy::iterator I = std::upper_bound(Decls->begin(), Decls->end(),
-                                            LocDecl, llvm::less_first());
+  LocDeclsTy::iterator I =
+      llvm::upper_bound(*Decls, LocDecl, llvm::less_first());
 
 
   Decls->insert(I, LocDecl);
   Decls->insert(I, LocDecl);
 }
 }
@@ -2473,9 +2473,9 @@ void ASTUnit::findFileRegionDecls(FileID File, unsigned Offset, unsigned Length,
     return;
     return;
 
 
   LocDeclsTy::iterator BeginIt =
   LocDeclsTy::iterator BeginIt =
-      std::lower_bound(LocDecls.begin(), LocDecls.end(),
-                       std::make_pair(Offset, (Decl *)nullptr),
-                       llvm::less_first());
+      llvm::partition_point(LocDecls, [=](std::pair<unsigned, Decl *> LD) {
+        return LD.first < Offset;
+      });
   if (BeginIt != LocDecls.begin())
   if (BeginIt != LocDecls.begin())
     --BeginIt;
     --BeginIt;
 
 
@@ -2486,9 +2486,9 @@ void ASTUnit::findFileRegionDecls(FileID File, unsigned Offset, unsigned Length,
          BeginIt->second->isTopLevelDeclInObjCContainer())
          BeginIt->second->isTopLevelDeclInObjCContainer())
     --BeginIt;
     --BeginIt;
 
 
-  LocDeclsTy::iterator EndIt = std::upper_bound(
-      LocDecls.begin(), LocDecls.end(),
-      std::make_pair(Offset + Length, (Decl *)nullptr), llvm::less_first());
+  LocDeclsTy::iterator EndIt = llvm::upper_bound(
+      LocDecls, std::make_pair(Offset + Length, (Decl *)nullptr),
+      llvm::less_first());
   if (EndIt != LocDecls.end())
   if (EndIt != LocDecls.end())
     ++EndIt;
     ++EndIt;
 
 

+ 1 - 1
lib/Index/FileIndexRecord.cpp

@@ -36,7 +36,7 @@ void FileIndexRecord::addDeclOccurence(SymbolRoleSet Roles, unsigned Offset,
 
 
   DeclOccurrence NewInfo(Roles, Offset, D, Relations);
   DeclOccurrence NewInfo(Roles, Offset, D, Relations);
   // We keep Decls in order as we need to access them in this order in all cases.
   // We keep Decls in order as we need to access them in this order in all cases.
-  auto It = std::upper_bound(Decls.begin(), Decls.end(), NewInfo);
+  auto It = llvm::upper_bound(Decls, NewInfo);
   Decls.insert(It, std::move(NewInfo));
   Decls.insert(It, std::move(NewInfo));
 }
 }
 
 

+ 4 - 6
lib/Lex/PPConditionalDirectiveRecord.cpp

@@ -25,9 +25,8 @@ bool PPConditionalDirectiveRecord::rangeIntersectsConditionalDirective(
   if (Range.isInvalid())
   if (Range.isInvalid())
     return false;
     return false;
 
 
-  CondDirectiveLocsTy::const_iterator
-    low = std::lower_bound(CondDirectiveLocs.begin(), CondDirectiveLocs.end(),
-                           Range.getBegin(), CondDirectiveLoc::Comp(SourceMgr));
+  CondDirectiveLocsTy::const_iterator low = llvm::lower_bound(
+      CondDirectiveLocs, Range.getBegin(), CondDirectiveLoc::Comp(SourceMgr));
   if (low == CondDirectiveLocs.end())
   if (low == CondDirectiveLocs.end())
     return false;
     return false;
 
 
@@ -55,9 +54,8 @@ SourceLocation PPConditionalDirectiveRecord::findConditionalDirectiveRegionLoc(
                                           Loc))
                                           Loc))
     return CondDirectiveStack.back();
     return CondDirectiveStack.back();
 
 
-  CondDirectiveLocsTy::const_iterator
-    low = std::lower_bound(CondDirectiveLocs.begin(), CondDirectiveLocs.end(),
-                           Loc, CondDirectiveLoc::Comp(SourceMgr));
+  CondDirectiveLocsTy::const_iterator low = llvm::lower_bound(
+      CondDirectiveLocs, Loc, CondDirectiveLoc::Comp(SourceMgr));
   assert(low != CondDirectiveLocs.end());
   assert(low != CondDirectiveLocs.end());
   return low->getRegionLoc();
   return low->getRegionLoc();
 }
 }

+ 7 - 11
lib/Lex/PreprocessingRecord.cpp

@@ -238,16 +238,13 @@ unsigned PreprocessingRecord::findBeginLocalPreprocessedEntity(
   return First - PreprocessedEntities.begin();
   return First - PreprocessedEntities.begin();
 }
 }
 
 
-unsigned PreprocessingRecord::findEndLocalPreprocessedEntity(
-                                                     SourceLocation Loc) const {
+unsigned
+PreprocessingRecord::findEndLocalPreprocessedEntity(SourceLocation Loc) const {
   if (SourceMgr.isLoadedSourceLocation(Loc))
   if (SourceMgr.isLoadedSourceLocation(Loc))
     return 0;
     return 0;
 
 
-  std::vector<PreprocessedEntity *>::const_iterator
-  I = std::upper_bound(PreprocessedEntities.begin(),
-                       PreprocessedEntities.end(),
-                       Loc,
-                       PPEntityComp<&SourceRange::getBegin>(SourceMgr));
+  auto I = llvm::upper_bound(PreprocessedEntities, Loc,
+                             PPEntityComp<&SourceRange::getBegin>(SourceMgr));
   return I - PreprocessedEntities.begin();
   return I - PreprocessedEntities.begin();
 }
 }
 
 
@@ -305,10 +302,9 @@ PreprocessingRecord::addPreprocessedEntity(PreprocessedEntity *Entity) {
   }
   }
 
 
   // Linear search unsuccessful. Do a binary search.
   // Linear search unsuccessful. Do a binary search.
-  pp_iter I = std::upper_bound(PreprocessedEntities.begin(),
-                               PreprocessedEntities.end(),
-                               BeginLoc,
-                               PPEntityComp<&SourceRange::getBegin>(SourceMgr));
+  pp_iter I =
+      llvm::upper_bound(PreprocessedEntities, BeginLoc,
+                        PPEntityComp<&SourceRange::getBegin>(SourceMgr));
   pp_iter insertI = PreprocessedEntities.insert(I, Entity);
   pp_iter insertI = PreprocessedEntities.insert(I, Entity);
   return getPPEntityID(insertI - PreprocessedEntities.begin(),
   return getPPEntityID(insertI - PreprocessedEntities.begin(),
                        /*isLoaded=*/false);
                        /*isLoaded=*/false);

+ 3 - 4
lib/Parse/ParseStmtAsm.cpp

@@ -144,8 +144,8 @@ void ClangAsmParserCallback::findTokensForString(
 
 
   // Try to find a token whose offset matches the first token.
   // Try to find a token whose offset matches the first token.
   unsigned FirstCharOffset = Str.begin() - AsmString.begin();
   unsigned FirstCharOffset = Str.begin() - AsmString.begin();
-  const unsigned *FirstTokOffset = std::lower_bound(
-      AsmTokOffsets.begin(), AsmTokOffsets.end(), FirstCharOffset);
+  const unsigned *FirstTokOffset =
+      llvm::lower_bound(AsmTokOffsets, FirstCharOffset);
 
 
   // For now, assert that the start of the string exactly
   // For now, assert that the start of the string exactly
   // corresponds to the start of a token.
   // corresponds to the start of a token.
@@ -174,8 +174,7 @@ ClangAsmParserCallback::translateLocation(const llvm::SourceMgr &LSM,
   unsigned Offset = SMLoc.getPointer() - LBuf->getBufferStart();
   unsigned Offset = SMLoc.getPointer() - LBuf->getBufferStart();
 
 
   // Figure out which token that offset points into.
   // Figure out which token that offset points into.
-  const unsigned *TokOffsetPtr =
-      std::lower_bound(AsmTokOffsets.begin(), AsmTokOffsets.end(), Offset);
+  const unsigned *TokOffsetPtr = llvm::lower_bound(AsmTokOffsets, Offset);
   unsigned TokIndex = TokOffsetPtr - AsmTokOffsets.begin();
   unsigned TokIndex = TokOffsetPtr - AsmTokOffsets.begin();
   unsigned TokOffset = *TokOffsetPtr;
   unsigned TokOffset = *TokOffsetPtr;
 
 

+ 4 - 9
lib/Sema/SemaChecking.cpp

@@ -2701,8 +2701,7 @@ bool Sema::CheckHexagonBuiltinCpu(unsigned BuiltinID, CallExpr *TheCall) {
   const TargetInfo &TI = Context.getTargetInfo();
   const TargetInfo &TI = Context.getTargetInfo();
 
 
   const BuiltinAndString *FC =
   const BuiltinAndString *FC =
-      std::lower_bound(std::begin(ValidCPU), std::end(ValidCPU), BuiltinID,
-                       LowerBoundCmp);
+      llvm::lower_bound(ValidCPU, BuiltinID, LowerBoundCmp);
   if (FC != std::end(ValidCPU) && FC->BuiltinID == BuiltinID) {
   if (FC != std::end(ValidCPU) && FC->BuiltinID == BuiltinID) {
     const TargetOptions &Opts = TI.getTargetOpts();
     const TargetOptions &Opts = TI.getTargetOpts();
     StringRef CPU = Opts.CPU;
     StringRef CPU = Opts.CPU;
@@ -2718,8 +2717,7 @@ bool Sema::CheckHexagonBuiltinCpu(unsigned BuiltinID, CallExpr *TheCall) {
   }
   }
 
 
   const BuiltinAndString *FH =
   const BuiltinAndString *FH =
-      std::lower_bound(std::begin(ValidHVX), std::end(ValidHVX), BuiltinID,
-                       LowerBoundCmp);
+      llvm::lower_bound(ValidHVX, BuiltinID, LowerBoundCmp);
   if (FH != std::end(ValidHVX) && FH->BuiltinID == BuiltinID) {
   if (FH != std::end(ValidHVX) && FH->BuiltinID == BuiltinID) {
     if (!TI.hasFeature("hvx"))
     if (!TI.hasFeature("hvx"))
       return Diag(TheCall->getBeginLoc(),
       return Diag(TheCall->getBeginLoc(),
@@ -2948,11 +2946,8 @@ bool Sema::CheckHexagonBuiltinArgument(unsigned BuiltinID, CallExpr *TheCall) {
        true);
        true);
   (void)SortOnce;
   (void)SortOnce;
 
 
-  const BuiltinInfo *F =
-      std::lower_bound(std::begin(Infos), std::end(Infos), BuiltinID,
-                       [](const BuiltinInfo &BI, unsigned BuiltinID) {
-                         return BI.BuiltinID < BuiltinID;
-                       });
+  const BuiltinInfo *F = llvm::partition_point(
+      Infos, [=](const BuiltinInfo &BI) { return BI.BuiltinID < BuiltinID; });
   if (F == std::end(Infos) || F->BuiltinID != BuiltinID)
   if (F == std::end(Infos) || F->BuiltinID != BuiltinID)
     return false;
     return false;
 
 

+ 2 - 3
lib/Sema/SemaStmt.cpp

@@ -1041,9 +1041,8 @@ Sema::ActOnFinishSwitchStmt(SourceLocation SwitchLoc, Stmt *Switch,
 
 
         // Find the smallest value >= the lower bound.  If I is in the
         // Find the smallest value >= the lower bound.  If I is in the
         // case range, then we have overlap.
         // case range, then we have overlap.
-        CaseValsTy::iterator I = std::lower_bound(CaseVals.begin(),
-                                                  CaseVals.end(), CRLo,
-                                                  CaseCompareFunctor());
+        CaseValsTy::iterator I =
+            llvm::lower_bound(CaseVals, CRLo, CaseCompareFunctor());
         if (I != CaseVals.end() && I->first < CRHi) {
         if (I != CaseVals.end() && I->first < CRHi) {
           OverlapVal  = I->first;   // Found overlap with scalar.
           OverlapVal  = I->first;   // Found overlap with scalar.
           OverlapStmt = I->second;
           OverlapStmt = I->second;

+ 4 - 6
lib/Serialization/ASTReader.cpp

@@ -7948,9 +7948,8 @@ void ASTReader::FindFileRegionDecls(FileID File,
   SourceLocation EndLoc = BeginLoc.getLocWithOffset(Length);
   SourceLocation EndLoc = BeginLoc.getLocWithOffset(Length);
 
 
   DeclIDComp DIDComp(*this, *DInfo.Mod);
   DeclIDComp DIDComp(*this, *DInfo.Mod);
-  ArrayRef<serialization::LocalDeclID>::iterator
-    BeginIt = std::lower_bound(DInfo.Decls.begin(), DInfo.Decls.end(),
-                               BeginLoc, DIDComp);
+  ArrayRef<serialization::LocalDeclID>::iterator BeginIt =
+      llvm::lower_bound(DInfo.Decls, BeginLoc, DIDComp);
   if (BeginIt != DInfo.Decls.begin())
   if (BeginIt != DInfo.Decls.begin())
     --BeginIt;
     --BeginIt;
 
 
@@ -7962,9 +7961,8 @@ void ASTReader::FindFileRegionDecls(FileID File,
              ->isTopLevelDeclInObjCContainer())
              ->isTopLevelDeclInObjCContainer())
     --BeginIt;
     --BeginIt;
 
 
-  ArrayRef<serialization::LocalDeclID>::iterator
-    EndIt = std::upper_bound(DInfo.Decls.begin(), DInfo.Decls.end(),
-                             EndLoc, DIDComp);
+  ArrayRef<serialization::LocalDeclID>::iterator EndIt =
+      llvm::upper_bound(DInfo.Decls, EndLoc, DIDComp);
   if (EndIt != DInfo.Decls.end())
   if (EndIt != DInfo.Decls.end())
     ++EndIt;
     ++EndIt;
 
 

+ 1 - 1
lib/Serialization/ASTWriter.cpp

@@ -5707,7 +5707,7 @@ void ASTWriter::associateDeclWithFile(const Decl *D, DeclID ID) {
   }
   }
 
 
   LocDeclIDsTy::iterator I =
   LocDeclIDsTy::iterator I =
-      std::upper_bound(Decls.begin(), Decls.end(), LocDecl, llvm::less_first());
+      llvm::upper_bound(Decls, LocDecl, llvm::less_first());
 
 
   Decls.insert(I, LocDecl);
   Decls.insert(I, LocDecl);
 }
 }

+ 2 - 4
lib/StaticAnalyzer/Checkers/PaddingChecker.cpp

@@ -274,15 +274,13 @@ public:
       long long CurAlignmentBits = 1ull << (std::min)(TrailingZeros, 62u);
       long long CurAlignmentBits = 1ull << (std::min)(TrailingZeros, 62u);
       CharUnits CurAlignment = CharUnits::fromQuantity(CurAlignmentBits);
       CharUnits CurAlignment = CharUnits::fromQuantity(CurAlignmentBits);
       FieldInfo InsertPoint = {CurAlignment, CharUnits::Zero(), nullptr};
       FieldInfo InsertPoint = {CurAlignment, CharUnits::Zero(), nullptr};
-      auto CurBegin = Fields.begin();
-      auto CurEnd = Fields.end();
 
 
       // In the typical case, this will find the last element
       // In the typical case, this will find the last element
       // of the vector. We won't find a middle element unless
       // of the vector. We won't find a middle element unless
       // we started on a poorly aligned address or have an overly
       // we started on a poorly aligned address or have an overly
       // aligned field.
       // aligned field.
-      auto Iter = std::upper_bound(CurBegin, CurEnd, InsertPoint);
-      if (Iter != CurBegin) {
+      auto Iter = llvm::upper_bound(Fields, InsertPoint);
+      if (Iter != Fields.begin()) {
         // We found a field that we can layout with the current alignment.
         // We found a field that we can layout with the current alignment.
         --Iter;
         --Iter;
         NewOffset += Iter->Size;
         NewOffset += Iter->Size;

+ 1 - 2
lib/Tooling/InterpolatingCompilationDatabase.cpp

@@ -478,8 +478,7 @@ private:
                                  ArrayRef<SubstringAndIndex> Idx) const {
                                  ArrayRef<SubstringAndIndex> Idx) const {
     assert(!Idx.empty());
     assert(!Idx.empty());
     // Longest substring match will be adjacent to a direct lookup.
     // Longest substring match will be adjacent to a direct lookup.
-    auto It =
-        std::lower_bound(Idx.begin(), Idx.end(), SubstringAndIndex{Key, 0});
+    auto It = llvm::lower_bound(Idx, SubstringAndIndex{Key, 0});
     if (It == Idx.begin())
     if (It == Idx.begin())
       return *It;
       return *It;
     if (It == Idx.end())
     if (It == Idx.end())

+ 1 - 3
tools/diagtool/DiagnosticNames.cpp

@@ -54,9 +54,7 @@ const DiagnosticRecord &diagtool::getDiagnosticForID(short DiagID) {
   DiagnosticRecord Key = {nullptr, DiagID, 0};
   DiagnosticRecord Key = {nullptr, DiagID, 0};
 
 
   const DiagnosticRecord *Result =
   const DiagnosticRecord *Result =
-    std::lower_bound(std::begin(BuiltinDiagnosticsByID),
-                     std::end(BuiltinDiagnosticsByID),
-                     Key, orderByID);
+      llvm::lower_bound(BuiltinDiagnosticsByID, Key, orderByID);
   assert(Result && "diagnostic not found; table may be out of date");
   assert(Result && "diagnostic not found; table may be out of date");
   return *Result;
   return *Result;
 }
 }

+ 1 - 3
tools/diagtool/TreeView.cpp

@@ -102,9 +102,7 @@ public:
       return 1;
       return 1;
     }
     }
 
 
-    const GroupRecord *Found =
-        std::lower_bound(AllGroups.begin(), AllGroups.end(), RootGroup);
-
+    const GroupRecord *Found = llvm::lower_bound(AllGroups, RootGroup);
     if (Found == AllGroups.end() || Found->getName() != RootGroup) {
     if (Found == AllGroups.end() || Found->getName() != RootGroup) {
       llvm::errs() << "No such diagnostic group exists\n";
       llvm::errs() << "No such diagnostic group exists\n";
       return 1;
       return 1;