Author: mgrang Date: Tue Mar 27 09:50:00 2018 New Revision: 328636 URL: http://llvm.org/viewvc/llvm-project?rev=328636&view=rev Log: [clang] Change std::sort to llvm::sort in response to r327219
r327219 added wrappers to std::sort which randomly shuffle the container before sorting. This will help in uncovering non-determinism caused due to undefined sorting order of objects having the same key. To make use of that infrastructure we need to invoke llvm::sort instead of std::sort. Modified: cfe/trunk/include/clang/Basic/Attr.td cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h cfe/trunk/lib/AST/ASTContext.cpp cfe/trunk/lib/AST/ItaniumMangle.cpp cfe/trunk/lib/AST/VTableBuilder.cpp cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp cfe/trunk/lib/Analysis/LiveVariables.cpp cfe/trunk/lib/Basic/VirtualFileSystem.cpp cfe/trunk/lib/CodeGen/CGVTables.cpp cfe/trunk/lib/CodeGen/CodeGenModule.cpp cfe/trunk/lib/CodeGen/TargetInfo.cpp cfe/trunk/lib/Driver/Driver.cpp cfe/trunk/lib/Format/FormatTokenLexer.cpp cfe/trunk/lib/Format/WhitespaceManager.cpp cfe/trunk/lib/Frontend/CompilerInvocation.cpp cfe/trunk/lib/Frontend/DiagnosticRenderer.cpp cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp cfe/trunk/lib/Sema/SemaDecl.cpp cfe/trunk/lib/Sema/SemaDeclAttr.cpp cfe/trunk/lib/Sema/SemaLookup.cpp cfe/trunk/lib/Sema/SemaOverload.cpp cfe/trunk/lib/Sema/SemaType.cpp cfe/trunk/lib/Serialization/ASTReader.cpp cfe/trunk/lib/Serialization/ASTReaderDecl.cpp cfe/trunk/lib/Serialization/ASTWriter.cpp cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp cfe/trunk/lib/StaticAnalyzer/Core/CheckerRegistry.cpp cfe/trunk/lib/Tooling/ASTDiff/ASTDiff.cpp cfe/trunk/lib/Tooling/Core/Replacement.cpp cfe/trunk/tools/diagtool/DiagTool.cpp cfe/trunk/tools/libclang/CIndex.cpp cfe/trunk/unittests/Basic/VirtualFileSystemTest.cpp cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp cfe/trunk/utils/TableGen/NeonEmitter.cpp Modified: cfe/trunk/include/clang/Basic/Attr.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/Attr.td (original) +++ cfe/trunk/include/clang/Basic/Attr.td Tue Mar 27 09:50:00 2018 @@ -1889,7 +1889,7 @@ def Target : InheritableAttr { template<class Compare> ParsedTargetAttr parse(Compare cmp) const { ParsedTargetAttr Attrs = parse(); - std::sort(std::begin(Attrs.Features), std::end(Attrs.Features), cmp); + llvm::sort(std::begin(Attrs.Features), std::end(Attrs.Features), cmp); return Attrs; } Modified: cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h (original) +++ cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h Tue Mar 27 09:50:00 2018 @@ -117,7 +117,7 @@ public: Builder &operator=(const Builder&) = delete; ~Builder() { - std::sort(Self.Rep.begin(), Self.Rep.end(), Compare()); + llvm::sort(Self.Rep.begin(), Self.Rep.end(), Compare()); std::unique(Self.Rep.begin(), Self.Rep.end(), [](const_reference A, const_reference B) { // FIXME: we should not allow any duplicate keys, but there are a lot of Modified: cfe/trunk/lib/AST/ASTContext.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTContext.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/AST/ASTContext.cpp (original) +++ cfe/trunk/lib/AST/ASTContext.cpp Tue Mar 27 09:50:00 2018 @@ -2186,7 +2186,7 @@ structHasUniqueObjectRepresentations(con } } - std::sort( + llvm::sort( Bases.begin(), Bases.end(), [&](const std::pair<QualType, int64_t> &L, const std::pair<QualType, int64_t> &R) { return Layout.getBaseClassOffset(L.first->getAsCXXRecordDecl()) < Modified: cfe/trunk/lib/AST/ItaniumMangle.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ItaniumMangle.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/AST/ItaniumMangle.cpp (original) +++ cfe/trunk/lib/AST/ItaniumMangle.cpp Tue Mar 27 09:50:00 2018 @@ -323,7 +323,7 @@ class CXXNameMangler { AdditionalAbiTags->end()); } - std::sort(TagList.begin(), TagList.end()); + llvm::sort(TagList.begin(), TagList.end()); TagList.erase(std::unique(TagList.begin(), TagList.end()), TagList.end()); writeSortedUniqueAbiTags(Out, TagList); @@ -339,7 +339,7 @@ class CXXNameMangler { } const AbiTagList &getSortedUniqueUsedAbiTags() { - std::sort(UsedAbiTags.begin(), UsedAbiTags.end()); + llvm::sort(UsedAbiTags.begin(), UsedAbiTags.end()); UsedAbiTags.erase(std::unique(UsedAbiTags.begin(), UsedAbiTags.end()), UsedAbiTags.end()); return UsedAbiTags; Modified: cfe/trunk/lib/AST/VTableBuilder.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/VTableBuilder.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/AST/VTableBuilder.cpp (original) +++ cfe/trunk/lib/AST/VTableBuilder.cpp Tue Mar 27 09:50:00 2018 @@ -2105,8 +2105,8 @@ void ItaniumVTableBuilder::dumpLayout(ra const CXXMethodDecl *MD = I.second; ThunkInfoVectorTy ThunksVector = Thunks[MD]; - std::sort(ThunksVector.begin(), ThunksVector.end(), - [](const ThunkInfo &LHS, const ThunkInfo &RHS) { + llvm::sort(ThunksVector.begin(), ThunksVector.end(), + [](const ThunkInfo &LHS, const ThunkInfo &RHS) { assert(LHS.Method == nullptr && RHS.Method == nullptr); return std::tie(LHS.This, LHS.Return) < std::tie(RHS.This, RHS.Return); }); @@ -2206,9 +2206,9 @@ VTableLayout::VTableLayout(ArrayRef<size else this->VTableIndices = OwningArrayRef<size_t>(VTableIndices); - std::sort(this->VTableThunks.begin(), this->VTableThunks.end(), - [](const VTableLayout::VTableThunkTy &LHS, - const VTableLayout::VTableThunkTy &RHS) { + llvm::sort(this->VTableThunks.begin(), this->VTableThunks.end(), + [](const VTableLayout::VTableThunkTy &LHS, + const VTableLayout::VTableThunkTy &RHS) { assert((LHS.first != RHS.first || LHS.second == RHS.second) && "Different thunks should have unique indices!"); return LHS.first < RHS.first; @@ -3344,8 +3344,8 @@ static bool rebucketPaths(VPtrInfoVector PathsSorted.reserve(Paths.size()); for (auto& P : Paths) PathsSorted.push_back(*P); - std::sort(PathsSorted.begin(), PathsSorted.end(), - [](const VPtrInfo &LHS, const VPtrInfo &RHS) { + llvm::sort(PathsSorted.begin(), PathsSorted.end(), + [](const VPtrInfo &LHS, const VPtrInfo &RHS) { return LHS.MangledPath < RHS.MangledPath; }); bool Changed = false; Modified: cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp (original) +++ cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp Tue Mar 27 09:50:00 2018 @@ -619,8 +619,8 @@ Parser::completeExpression(StringRef Cod P.parseExpressionImpl(&Dummy); // Sort by specificity, then by name. - std::sort(P.Completions.begin(), P.Completions.end(), - [](const MatcherCompletion &A, const MatcherCompletion &B) { + llvm::sort(P.Completions.begin(), P.Completions.end(), + [](const MatcherCompletion &A, const MatcherCompletion &B) { if (A.Specificity != B.Specificity) return A.Specificity > B.Specificity; return A.TypedText < B.TypedText; Modified: cfe/trunk/lib/Analysis/LiveVariables.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/LiveVariables.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Analysis/LiveVariables.cpp (original) +++ cfe/trunk/lib/Analysis/LiveVariables.cpp Tue Mar 27 09:50:00 2018 @@ -563,7 +563,7 @@ void LiveVariablesImpl::dumpBlockLivenes it != ei; ++it) { vec.push_back(it->first); } - std::sort(vec.begin(), vec.end(), [](const CFGBlock *A, const CFGBlock *B) { + llvm::sort(vec.begin(), vec.end(), [](const CFGBlock *A, const CFGBlock *B) { return A->getBlockID() < B->getBlockID(); }); @@ -583,7 +583,8 @@ void LiveVariablesImpl::dumpBlockLivenes declVec.push_back(*si); } - std::sort(declVec.begin(), declVec.end(), [](const Decl *A, const Decl *B) { + llvm::sort(declVec.begin(), declVec.end(), + [](const Decl *A, const Decl *B) { return A->getLocStart() < B->getLocStart(); }); Modified: cfe/trunk/lib/Basic/VirtualFileSystem.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/VirtualFileSystem.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Basic/VirtualFileSystem.cpp (original) +++ cfe/trunk/lib/Basic/VirtualFileSystem.cpp Tue Mar 27 09:50:00 2018 @@ -1812,8 +1812,8 @@ void JSONWriter::write(ArrayRef<YAMLVFSE } void YAMLVFSWriter::write(llvm::raw_ostream &OS) { - std::sort(Mappings.begin(), Mappings.end(), - [](const YAMLVFSEntry &LHS, const YAMLVFSEntry &RHS) { + llvm::sort(Mappings.begin(), Mappings.end(), + [](const YAMLVFSEntry &LHS, const YAMLVFSEntry &RHS) { return LHS.VPath < RHS.VPath; }); Modified: cfe/trunk/lib/CodeGen/CGVTables.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGVTables.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGVTables.cpp (original) +++ cfe/trunk/lib/CodeGen/CGVTables.cpp Tue Mar 27 09:50:00 2018 @@ -992,8 +992,8 @@ void CodeGenModule::EmitVTableTypeMetada AP.second.AddressPointIndex)); // Sort the bit set entries for determinism. - std::sort(BitsetEntries.begin(), BitsetEntries.end(), - [this](const BSEntry &E1, const BSEntry &E2) { + llvm::sort(BitsetEntries.begin(), BitsetEntries.end(), + [this](const BSEntry &E1, const BSEntry &E2) { if (&E1 == &E2) return false; Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original) +++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Tue Mar 27 09:50:00 2018 @@ -1294,7 +1294,7 @@ bool CodeGenModule::GetCPUAndFeaturesAtt AddedAttr = true; } if (!Features.empty()) { - std::sort(Features.begin(), Features.end()); + llvm::sort(Features.begin(), Features.end()); Attrs.addAttribute("target-features", llvm::join(Features, ",")); AddedAttr = true; } Modified: cfe/trunk/lib/CodeGen/TargetInfo.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/TargetInfo.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/TargetInfo.cpp (original) +++ cfe/trunk/lib/CodeGen/TargetInfo.cpp Tue Mar 27 09:50:00 2018 @@ -8513,7 +8513,7 @@ static bool appendRecordType(SmallString // The ABI requires unions to be sorted but not structures. // See FieldEncoding::operator< for sort algorithm. if (RT->isUnionType()) - std::sort(FE.begin(), FE.end()); + llvm::sort(FE.begin(), FE.end()); // We can now complete the TypeString. unsigned E = FE.size(); for (unsigned I = 0; I != E; ++I) { @@ -8557,7 +8557,7 @@ static bool appendEnumType(SmallStringEn EnumEnc += '}'; FE.push_back(FieldEncoding(!I->getName().empty(), EnumEnc)); } - std::sort(FE.begin(), FE.end()); + llvm::sort(FE.begin(), FE.end()); unsigned E = FE.size(); for (unsigned I = 0; I != E; ++I) { if (I) Modified: cfe/trunk/lib/Driver/Driver.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Driver.cpp (original) +++ cfe/trunk/lib/Driver/Driver.cpp Tue Mar 27 09:50:00 2018 @@ -1474,11 +1474,11 @@ void Driver::HandleAutocompletions(Strin // deterministic order. We could sort in any way, but we chose // case-insensitive sorting for consistency with the -help option // which prints out options in the case-insensitive alphabetical order. - std::sort(SuggestedCompletions.begin(), SuggestedCompletions.end(), - [](StringRef A, StringRef B) { - if (int X = A.compare_lower(B)) - return X < 0; - return A.compare(B) > 0; + llvm::sort(SuggestedCompletions.begin(), SuggestedCompletions.end(), + [](StringRef A, StringRef B) { + if (int X = A.compare_lower(B)) + return X < 0; + return A.compare(B) > 0; }); llvm::outs() << llvm::join(SuggestedCompletions, "\n") << '\n'; Modified: cfe/trunk/lib/Format/FormatTokenLexer.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/FormatTokenLexer.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Format/FormatTokenLexer.cpp (original) +++ cfe/trunk/lib/Format/FormatTokenLexer.cpp Tue Mar 27 09:50:00 2018 @@ -38,7 +38,7 @@ FormatTokenLexer::FormatTokenLexer(const for (const std::string &ForEachMacro : Style.ForEachMacros) ForEachMacros.push_back(&IdentTable.get(ForEachMacro)); - std::sort(ForEachMacros.begin(), ForEachMacros.end()); + llvm::sort(ForEachMacros.begin(), ForEachMacros.end()); } ArrayRef<FormatToken *> FormatTokenLexer::lex() { Modified: cfe/trunk/lib/Format/WhitespaceManager.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/WhitespaceManager.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Format/WhitespaceManager.cpp (original) +++ cfe/trunk/lib/Format/WhitespaceManager.cpp Tue Mar 27 09:50:00 2018 @@ -90,7 +90,7 @@ const tooling::Replacements &WhitespaceM if (Changes.empty()) return Replaces; - std::sort(Changes.begin(), Changes.end(), Change::IsBeforeInFile(SourceMgr)); + llvm::sort(Changes.begin(), Changes.end(), Change::IsBeforeInFile(SourceMgr)); calculateLineBreakInformation(); alignConsecutiveDeclarations(); alignConsecutiveAssignments(); Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original) +++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Tue Mar 27 09:50:00 2018 @@ -1278,7 +1278,7 @@ bool clang::ParseDiagnosticArgs(Diagnost Success = false; } else - std::sort(Opts.VerifyPrefixes.begin(), Opts.VerifyPrefixes.end()); + llvm::sort(Opts.VerifyPrefixes.begin(), Opts.VerifyPrefixes.end()); DiagnosticLevelMask DiagMask = DiagnosticLevelMask::None; Success &= parseDiagnosticLevelMask("-verify-ignore-unexpected=", Args.getAllArgValues(OPT_verify_ignore_unexpected_EQ), @@ -2409,7 +2409,7 @@ static void ParseLangArgs(LangOptions &O Opts.CurrentModule = Opts.ModuleName; Opts.AppExt = Args.hasArg(OPT_fapplication_extension); Opts.ModuleFeatures = Args.getAllArgValues(OPT_fmodule_feature); - std::sort(Opts.ModuleFeatures.begin(), Opts.ModuleFeatures.end()); + llvm::sort(Opts.ModuleFeatures.begin(), Opts.ModuleFeatures.end()); Opts.NativeHalfType |= Args.hasArg(OPT_fnative_half_type); Opts.NativeHalfArgsAndReturns |= Args.hasArg(OPT_fnative_half_arguments_and_returns); // Enable HalfArgsAndReturns if present in Args or if NativeHalfArgsAndReturns Modified: cfe/trunk/lib/Frontend/DiagnosticRenderer.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/DiagnosticRenderer.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/DiagnosticRenderer.cpp (original) +++ cfe/trunk/lib/Frontend/DiagnosticRenderer.cpp Tue Mar 27 09:50:00 2018 @@ -324,8 +324,8 @@ static void computeCommonMacroArgExpansi SmallVector<FileID, 4> EndArgExpansions; getMacroArgExpansionFileIDs(Begin, BeginArgExpansions, /*IsBegin=*/true, SM); getMacroArgExpansionFileIDs(End, EndArgExpansions, /*IsBegin=*/false, SM); - std::sort(BeginArgExpansions.begin(), BeginArgExpansions.end()); - std::sort(EndArgExpansions.begin(), EndArgExpansions.end()); + llvm::sort(BeginArgExpansions.begin(), BeginArgExpansions.end()); + llvm::sort(EndArgExpansions.begin(), EndArgExpansions.end()); std::set_intersection(BeginArgExpansions.begin(), BeginArgExpansions.end(), EndArgExpansions.begin(), EndArgExpansions.end(), std::back_inserter(CommonArgExpansions)); Modified: cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp (original) +++ cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp Tue Mar 27 09:50:00 2018 @@ -1388,8 +1388,8 @@ static void diagnoseRepeatedUseOfWeak(Se // Sort by first use so that we emit the warnings in a deterministic order. SourceManager &SM = S.getSourceManager(); - std::sort(UsesByStmt.begin(), UsesByStmt.end(), - [&SM](const StmtUsesPair &LHS, const StmtUsesPair &RHS) { + llvm::sort(UsesByStmt.begin(), UsesByStmt.end(), + [&SM](const StmtUsesPair &LHS, const StmtUsesPair &RHS) { return SM.isBeforeInTranslationUnit(LHS.first->getLocStart(), RHS.first->getLocStart()); }); @@ -1527,8 +1527,8 @@ public: // Sort the uses by their SourceLocations. While not strictly // guaranteed to produce them in line/column order, this will provide // a stable ordering. - std::sort(vec->begin(), vec->end(), - [](const UninitUse &a, const UninitUse &b) { + llvm::sort(vec->begin(), vec->end(), + [](const UninitUse &a, const UninitUse &b) { // Prefer a more confident report over a less confident one. if (a.getKind() != b.getKind()) return a.getKind() > b.getKind(); Modified: cfe/trunk/lib/Sema/SemaDecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaDecl.cpp (original) +++ cfe/trunk/lib/Sema/SemaDecl.cpp Tue Mar 27 09:50:00 2018 @@ -9375,7 +9375,7 @@ static bool CheckMultiVersionFunction(Se TargetAttr::ParsedTargetAttr NewParsed = NewTA->parse(); // Sort order doesn't matter, it just needs to be consistent. - std::sort(NewParsed.Features.begin(), NewParsed.Features.end()); + llvm::sort(NewParsed.Features.begin(), NewParsed.Features.end()); const auto *OldTA = OldFD->getAttr<TargetAttr>(); if (!OldFD->isMultiVersion()) { Modified: cfe/trunk/lib/Sema/SemaDeclAttr.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclAttr.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaDeclAttr.cpp (original) +++ cfe/trunk/lib/Sema/SemaDeclAttr.cpp Tue Mar 27 09:50:00 2018 @@ -5051,7 +5051,7 @@ static void handleAbiTagAttr(Sema &S, De return; // Store tags sorted and without duplicates. - std::sort(Tags.begin(), Tags.end()); + llvm::sort(Tags.begin(), Tags.end()); Tags.erase(std::unique(Tags.begin(), Tags.end()), Tags.end()); D->addAttr(::new (S.Context) Modified: cfe/trunk/lib/Sema/SemaLookup.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaLookup.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaLookup.cpp (original) +++ cfe/trunk/lib/Sema/SemaLookup.cpp Tue Mar 27 09:50:00 2018 @@ -187,7 +187,7 @@ namespace { } void done() { - std::sort(list.begin(), list.end(), UnqualUsingEntry::Comparator()); + llvm::sort(list.begin(), list.end(), UnqualUsingEntry::Comparator()); } typedef ListTy::const_iterator const_iterator; Modified: cfe/trunk/lib/Sema/SemaOverload.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOverload.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaOverload.cpp (original) +++ cfe/trunk/lib/Sema/SemaOverload.cpp Tue Mar 27 09:50:00 2018 @@ -10688,8 +10688,8 @@ void TemplateSpecCandidateSet::NoteCandi // in general, want to list every possible builtin candidate. } - std::sort(Cands.begin(), Cands.end(), - CompareTemplateSpecCandidatesForDisplay(S)); + llvm::sort(Cands.begin(), Cands.end(), + CompareTemplateSpecCandidatesForDisplay(S)); // FIXME: Perhaps rename OverloadsShown and getShowOverloads() // for generalization purposes (?). Modified: cfe/trunk/lib/Sema/SemaType.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaType.cpp (original) +++ cfe/trunk/lib/Sema/SemaType.cpp Tue Mar 27 09:50:00 2018 @@ -4861,8 +4861,8 @@ static TypeSourceInfo *GetFullTypeForDec if (Chunk.Fun.TypeQuals & Qualifiers::Restrict) RemovalLocs.push_back(Chunk.Fun.getRestrictQualifierLoc()); if (!RemovalLocs.empty()) { - std::sort(RemovalLocs.begin(), RemovalLocs.end(), - BeforeThanCompare<SourceLocation>(S.getSourceManager())); + llvm::sort(RemovalLocs.begin(), RemovalLocs.end(), + BeforeThanCompare<SourceLocation>(S.getSourceManager())); RemovalRange = SourceRange(RemovalLocs.front(), RemovalLocs.back()); Loc = RemovalLocs.front(); } Modified: cfe/trunk/lib/Serialization/ASTReader.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Serialization/ASTReader.cpp (original) +++ cfe/trunk/lib/Serialization/ASTReader.cpp Tue Mar 27 09:50:00 2018 @@ -396,8 +396,8 @@ static bool checkTargetOptions(const Tar ExistingTargetOpts.FeaturesAsWritten.end()); SmallVector<StringRef, 4> ReadFeatures(TargetOpts.FeaturesAsWritten.begin(), TargetOpts.FeaturesAsWritten.end()); - std::sort(ExistingFeatures.begin(), ExistingFeatures.end()); - std::sort(ReadFeatures.begin(), ReadFeatures.end()); + llvm::sort(ExistingFeatures.begin(), ExistingFeatures.end()); + llvm::sort(ReadFeatures.begin(), ReadFeatures.end()); // We compute the set difference in both directions explicitly so that we can // diagnose the differences differently. @@ -9078,8 +9078,8 @@ void ASTReader::ReadComments() { NextCursor: // De-serialized SourceLocations get negative FileIDs for other modules, // potentially invalidating the original order. Sort it again. - std::sort(Comments.begin(), Comments.end(), - BeforeThanCompare<RawComment>(SourceMgr)); + llvm::sort(Comments.begin(), Comments.end(), + BeforeThanCompare<RawComment>(SourceMgr)); Context.Comments.addDeserializedComments(Comments); } } Modified: cfe/trunk/lib/Serialization/ASTReaderDecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReaderDecl.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Serialization/ASTReaderDecl.cpp (original) +++ cfe/trunk/lib/Serialization/ASTReaderDecl.cpp Tue Mar 27 09:50:00 2018 @@ -232,7 +232,7 @@ namespace clang { if (auto &Old = LazySpecializations) { IDs.insert(IDs.end(), Old + 1, Old + 1 + Old[0]); - std::sort(IDs.begin(), IDs.end()); + llvm::sort(IDs.begin(), IDs.end()); IDs.erase(std::unique(IDs.begin(), IDs.end()), IDs.end()); } Modified: cfe/trunk/lib/Serialization/ASTWriter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriter.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Serialization/ASTWriter.cpp (original) +++ cfe/trunk/lib/Serialization/ASTWriter.cpp Tue Mar 27 09:50:00 2018 @@ -2483,8 +2483,8 @@ void ASTWriter::WritePreprocessor(const MacroIdentifiers.push_back(Id.second); // Sort the set of macro definitions that need to be serialized by the // name of the macro, to provide a stable ordering. - std::sort(MacroIdentifiers.begin(), MacroIdentifiers.end(), - llvm::less_ptr<IdentifierInfo>()); + llvm::sort(MacroIdentifiers.begin(), MacroIdentifiers.end(), + llvm::less_ptr<IdentifierInfo>()); // Emit the macro directives as a list and associate the offset with the // identifier they belong to. @@ -3216,8 +3216,8 @@ void ASTWriter::WriteFileDeclIDsMap() { SmallVector<std::pair<FileID, DeclIDInFileInfo *>, 64> SortedFileDeclIDs( FileDeclIDs.begin(), FileDeclIDs.end()); - std::sort(SortedFileDeclIDs.begin(), SortedFileDeclIDs.end(), - llvm::less_first()); + llvm::sort(SortedFileDeclIDs.begin(), SortedFileDeclIDs.end(), + llvm::less_first()); // Join the vectors of DeclIDs from all files. SmallVector<DeclID, 256> FileGroupedDeclIDs; @@ -3721,7 +3721,7 @@ void ASTWriter::WriteIdentifierTable(Pre IIs.push_back(ID.second); // Sort the identifiers lexicographically before getting them references so // that their order is stable. - std::sort(IIs.begin(), IIs.end(), llvm::less_ptr<IdentifierInfo>()); + llvm::sort(IIs.begin(), IIs.end(), llvm::less_ptr<IdentifierInfo>()); for (const IdentifierInfo *II : IIs) if (Trait.isInterestingNonMacroIdentifier(II)) getIdentifierRef(II); @@ -4019,7 +4019,7 @@ ASTWriter::GenerateNameLookupTable(const } // Sort the names into a stable order. - std::sort(Names.begin(), Names.end()); + llvm::sort(Names.begin(), Names.end()); if (auto *D = dyn_cast<CXXRecordDecl>(DC)) { // We need to establish an ordering of constructor and conversion function @@ -4156,7 +4156,7 @@ uint64_t ASTWriter::WriteDeclContextVisi std::make_pair(Entry.first, Entry.second.getLookupResult())); } - std::sort(LookupResults.begin(), LookupResults.end(), llvm::less_first()); + llvm::sort(LookupResults.begin(), LookupResults.end(), llvm::less_first()); for (auto &NameAndResult : LookupResults) { DeclarationName Name = NameAndResult.first; DeclContext::lookup_result Result = NameAndResult.second; @@ -4852,7 +4852,7 @@ ASTFileSignature ASTWriter::WriteASTCore IIs.push_back(II); } // Sort the identifiers to visit based on their name. - std::sort(IIs.begin(), IIs.end(), llvm::less_ptr<IdentifierInfo>()); + llvm::sort(IIs.begin(), IIs.end(), llvm::less_ptr<IdentifierInfo>()); for (const IdentifierInfo *II : IIs) { for (IdentifierResolver::iterator D = SemaRef.IdResolver.begin(II), DEnd = SemaRef.IdResolver.end(); @@ -5089,7 +5089,7 @@ ASTFileSignature ASTWriter::WriteASTCore }; // Sort and deduplicate module IDs. - std::sort(Imports.begin(), Imports.end(), Cmp); + llvm::sort(Imports.begin(), Imports.end(), Cmp); Imports.erase(std::unique(Imports.begin(), Imports.end(), Eq), Imports.end()); Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp (original) +++ cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp Tue Mar 27 09:50:00 2018 @@ -237,7 +237,7 @@ public: }; std::transform(RD->field_begin(), RD->field_end(), std::back_inserter(Fields), GatherSizesAndAlignments); - std::sort(Fields.begin(), Fields.end()); + llvm::sort(Fields.begin(), Fields.end()); // This lets us skip over vptrs and non-virtual bases, // so that we can just worry about the fields in our object. // Note that this does cause us to miss some cases where we Modified: cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp (original) +++ cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp Tue Mar 27 09:50:00 2018 @@ -2947,8 +2947,8 @@ TrimmedGraph::TrimmedGraph(const Explode } // Sort the error paths from longest to shortest. - std::sort(ReportNodes.begin(), ReportNodes.end(), - PriorityCompare<true>(PriorityMap)); + llvm::sort(ReportNodes.begin(), ReportNodes.end(), + PriorityCompare<true>(PriorityMap)); } bool TrimmedGraph::popNextReportGraph(ReportGraph &GraphWrapper) { Modified: cfe/trunk/lib/StaticAnalyzer/Core/CheckerRegistry.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/CheckerRegistry.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/CheckerRegistry.cpp (original) +++ cfe/trunk/lib/StaticAnalyzer/Core/CheckerRegistry.cpp Tue Mar 27 09:50:00 2018 @@ -97,7 +97,7 @@ void CheckerRegistry::addChecker(Initial void CheckerRegistry::initializeManager(CheckerManager &checkerMgr, SmallVectorImpl<CheckerOptInfo> &opts) const { // Sort checkers for efficient collection. - std::sort(Checkers.begin(), Checkers.end(), checkerNameLT); + llvm::sort(Checkers.begin(), Checkers.end(), checkerNameLT); // Collect checkers enabled by the options. CheckerInfoSet enabledCheckers; @@ -141,7 +141,7 @@ void CheckerRegistry::printHelp(raw_ostr // FIXME: Alphabetical sort puts 'experimental' in the middle. // Would it be better to name it '~experimental' or something else // that's ASCIIbetically last? - std::sort(Checkers.begin(), Checkers.end(), checkerNameLT); + llvm::sort(Checkers.begin(), Checkers.end(), checkerNameLT); // FIXME: Print available packages. @@ -178,7 +178,7 @@ void CheckerRegistry::printHelp(raw_ostr void CheckerRegistry::printList( raw_ostream &out, SmallVectorImpl<CheckerOptInfo> &opts) const { - std::sort(Checkers.begin(), Checkers.end(), checkerNameLT); + llvm::sort(Checkers.begin(), Checkers.end(), checkerNameLT); // Collect checkers enabled by the options. CheckerInfoSet enabledCheckers; Modified: cfe/trunk/lib/Tooling/ASTDiff/ASTDiff.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/ASTDiff/ASTDiff.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Tooling/ASTDiff/ASTDiff.cpp (original) +++ cfe/trunk/lib/Tooling/ASTDiff/ASTDiff.cpp Tue Mar 27 09:50:00 2018 @@ -741,7 +741,7 @@ public: List.pop(); } // TODO this is here to get a stable output, not a good heuristic - std::sort(Result.begin(), Result.end()); + llvm::sort(Result.begin(), Result.end()); return Result; } int peekMax() const { Modified: cfe/trunk/lib/Tooling/Core/Replacement.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/Core/Replacement.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/lib/Tooling/Core/Replacement.cpp (original) +++ cfe/trunk/lib/Tooling/Core/Replacement.cpp Tue Mar 27 09:50:00 2018 @@ -483,11 +483,11 @@ Replacements Replacements::merge(const R // Returns a set of non-overlapping and sorted ranges that is equivalent to // \p Ranges. static std::vector<Range> combineAndSortRanges(std::vector<Range> Ranges) { - std::sort(Ranges.begin(), Ranges.end(), - [](const Range &LHS, const Range &RHS) { - if (LHS.getOffset() != RHS.getOffset()) - return LHS.getOffset() < RHS.getOffset(); - return LHS.getLength() < RHS.getLength(); + llvm::sort(Ranges.begin(), Ranges.end(), + [](const Range &LHS, const Range &RHS) { + if (LHS.getOffset() != RHS.getOffset()) + return LHS.getOffset() < RHS.getOffset(); + return LHS.getLength() < RHS.getLength(); }); std::vector<Range> Result; for (const auto &R : Ranges) { Modified: cfe/trunk/tools/diagtool/DiagTool.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/diagtool/DiagTool.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/tools/diagtool/DiagTool.cpp (original) +++ cfe/trunk/tools/diagtool/DiagTool.cpp Tue Mar 27 09:50:00 2018 @@ -48,7 +48,7 @@ void DiagTools::printCommands(llvm::raw_ if (len > maxName) maxName = len; } - std::sort(toolNames.begin(), toolNames.end()); + llvm::sort(toolNames.begin(), toolNames.end()); for (std::vector<llvm::StringRef>::iterator it = toolNames.begin(), ei = toolNames.end(); it != ei; ++it) { Modified: cfe/trunk/tools/libclang/CIndex.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/tools/libclang/CIndex.cpp (original) +++ cfe/trunk/tools/libclang/CIndex.cpp Tue Mar 27 09:50:00 2018 @@ -1039,8 +1039,8 @@ bool CursorVisitor::VisitObjCContainerDe } // Now sort the Decls so that they appear in lexical order. - std::sort(DeclsInContainer.begin(), DeclsInContainer.end(), - [&SM](Decl *A, Decl *B) { + llvm::sort(DeclsInContainer.begin(), DeclsInContainer.end(), + [&SM](Decl *A, Decl *B) { SourceLocation L_A = A->getLocStart(); SourceLocation L_B = B->getLocStart(); return L_A != L_B ? @@ -7573,10 +7573,10 @@ static void getCursorPlatformAvailabilit if (AvailabilityAttrs.empty()) return; - std::sort(AvailabilityAttrs.begin(), AvailabilityAttrs.end(), - [](AvailabilityAttr *LHS, AvailabilityAttr *RHS) { - return LHS->getPlatform()->getName() < - RHS->getPlatform()->getName(); + llvm::sort(AvailabilityAttrs.begin(), AvailabilityAttrs.end(), + [](AvailabilityAttr *LHS, AvailabilityAttr *RHS) { + return LHS->getPlatform()->getName() < + RHS->getPlatform()->getName(); }); ASTContext &Ctx = D->getASTContext(); auto It = std::unique( Modified: cfe/trunk/unittests/Basic/VirtualFileSystemTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Basic/VirtualFileSystemTest.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/unittests/Basic/VirtualFileSystemTest.cpp (original) +++ cfe/trunk/unittests/Basic/VirtualFileSystemTest.cpp Tue Mar 27 09:50:00 2018 @@ -471,7 +471,7 @@ TEST(VirtualFileSystemTest, BrokenSymlin } // Check sorted contents. - std::sort(Contents.begin(), Contents.end()); + llvm::sort(Contents.begin(), Contents.end()); EXPECT_EQ(Expected.size(), Contents.size()); EXPECT_TRUE(std::equal(Contents.begin(), Contents.end(), Expected.begin())); } @@ -488,8 +488,8 @@ static void checkContents(DirIter I, Arr for (DirIter E; !EC && I != E; I.increment(EC)) InputToCheck.push_back(I->getName()); - std::sort(InputToCheck.begin(), InputToCheck.end()); - std::sort(Expected.begin(), Expected.end()); + llvm::sort(InputToCheck.begin(), InputToCheck.end()); + llvm::sort(Expected.begin(), Expected.end()); EXPECT_EQ(InputToCheck.size(), Expected.size()); unsigned LastElt = std::min(InputToCheck.size(), Expected.size()); Modified: cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp (original) +++ cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp Tue Mar 27 09:50:00 2018 @@ -3908,9 +3908,9 @@ void EmitClangAttrDocs(RecordKeeper &Rec for (auto &I : SplitDocs) { WriteCategoryHeader(I.first, OS); - std::sort(I.second.begin(), I.second.end(), - [](const DocumentationData &D1, const DocumentationData &D2) { - return D1.Heading < D2.Heading; + llvm::sort(I.second.begin(), I.second.end(), + [](const DocumentationData &D1, const DocumentationData &D2) { + return D1.Heading < D2.Heading; }); // Walk over each of the attributes in the category and write out their Modified: cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp (original) +++ cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp Tue Mar 27 09:50:00 2018 @@ -207,9 +207,9 @@ static void groupDiagnostics(const std:: E = SortedGroups.end(); I != E; ++I) { MutableArrayRef<const Record *> GroupDiags = (*I)->DiagsInGroup; - std::sort(GroupDiags.begin(), GroupDiags.end(), beforeThanCompare); + llvm::sort(GroupDiags.begin(), GroupDiags.end(), beforeThanCompare); } - std::sort(SortedGroups.begin(), SortedGroups.end(), beforeThanCompareGroups); + llvm::sort(SortedGroups.begin(), SortedGroups.end(), beforeThanCompareGroups); // Warn about the same group being used anonymously in multiple places. for (SmallVectorImpl<GroupInfo *>::const_iterator I = SortedGroups.begin(), @@ -863,9 +863,10 @@ void EmitClangDiagsIndexName(RecordKeepe Index.push_back(RecordIndexElement(R)); } - std::sort(Index.begin(), Index.end(), - [](const RecordIndexElement &Lhs, - const RecordIndexElement &Rhs) { return Lhs.Name < Rhs.Name; }); + llvm::sort(Index.begin(), Index.end(), + [](const RecordIndexElement &Lhs, const RecordIndexElement &Rhs) { + return Lhs.Name < Rhs.Name; + }); for (unsigned i = 0, e = Index.size(); i != e; ++i) { const RecordIndexElement &R = Index[i]; @@ -1212,7 +1213,7 @@ void EmitClangDiagDocs(RecordKeeper &Rec Records.getAllDerivedDefinitions("Diagnostic"); std::vector<Record*> DiagGroups = Records.getAllDerivedDefinitions("DiagGroup"); - std::sort(DiagGroups.begin(), DiagGroups.end(), diagGroupBeforeByName); + llvm::sort(DiagGroups.begin(), DiagGroups.end(), diagGroupBeforeByName); DiagGroupParentMap DGParentMap(Records); @@ -1231,10 +1232,10 @@ void EmitClangDiagDocs(RecordKeeper &Rec DiagsInPedanticSet.end()); RecordVec GroupsInPedantic(GroupsInPedanticSet.begin(), GroupsInPedanticSet.end()); - std::sort(DiagsInPedantic.begin(), DiagsInPedantic.end(), - beforeThanCompare); - std::sort(GroupsInPedantic.begin(), GroupsInPedantic.end(), - beforeThanCompare); + llvm::sort(DiagsInPedantic.begin(), DiagsInPedantic.end(), + beforeThanCompare); + llvm::sort(GroupsInPedantic.begin(), GroupsInPedantic.end(), + beforeThanCompare); PedDiags.DiagsInGroup.insert(PedDiags.DiagsInGroup.end(), DiagsInPedantic.begin(), DiagsInPedantic.end()); @@ -1283,7 +1284,7 @@ void EmitClangDiagDocs(RecordKeeper &Rec OS << "Also controls "; bool First = true; - std::sort(GroupInfo.SubGroups.begin(), GroupInfo.SubGroups.end()); + llvm::sort(GroupInfo.SubGroups.begin(), GroupInfo.SubGroups.end()); for (const auto &Name : GroupInfo.SubGroups) { if (!First) OS << ", "; OS << "`" << (IsRemarkGroup ? "-R" : "-W") << Name << "`_"; Modified: cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp (original) +++ cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp Tue Mar 27 09:50:00 2018 @@ -111,7 +111,7 @@ Documentation extractDocumentation(Recor auto DocumentationForOption = [&](Record *R) -> DocumentedOption { auto &A = Aliases[R]; - std::sort(A.begin(), A.end(), CompareByName); + llvm::sort(A.begin(), A.end(), CompareByName); return {R, std::move(A)}; }; @@ -120,7 +120,7 @@ Documentation extractDocumentation(Recor Documentation D; auto &Groups = GroupsInGroup[R]; - std::sort(Groups.begin(), Groups.end(), CompareByLocation); + llvm::sort(Groups.begin(), Groups.end(), CompareByLocation); for (Record *G : Groups) { D.Groups.emplace_back(); D.Groups.back().Group = G; @@ -129,7 +129,7 @@ Documentation extractDocumentation(Recor } auto &Options = OptionsInGroup[R]; - std::sort(Options.begin(), Options.end(), CompareByName); + llvm::sort(Options.begin(), Options.end(), CompareByName); for (Record *O : Options) D.Options.push_back(DocumentationForOption(O)); Modified: cfe/trunk/utils/TableGen/NeonEmitter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/NeonEmitter.cpp?rev=328636&r1=328635&r2=328636&view=diff ============================================================================== --- cfe/trunk/utils/TableGen/NeonEmitter.cpp (original) +++ cfe/trunk/utils/TableGen/NeonEmitter.cpp Tue Mar 27 09:50:00 2018 @@ -2007,7 +2007,7 @@ void NeonEmitter::createIntrinsic(Record } } - std::sort(NewTypeSpecs.begin(), NewTypeSpecs.end()); + llvm::sort(NewTypeSpecs.begin(), NewTypeSpecs.end()); NewTypeSpecs.erase(std::unique(NewTypeSpecs.begin(), NewTypeSpecs.end()), NewTypeSpecs.end()); auto &Entry = IntrinsicMap[Name]; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits