OSDN Git Service

[MC] Change std::sort to llvm::sort in response to r327219
authorMandeep Singh Grang <mgrang@codeaurora.org>
Fri, 13 Apr 2018 19:47:01 +0000 (19:47 +0000)
committerMandeep Singh Grang <mgrang@codeaurora.org>
Fri, 13 Apr 2018 19:47:01 +0000 (19:47 +0000)
Summary:
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.

Note: This patch is one of a series of patches to replace *all* std::sort to llvm::sort.
Refer the comments section in D44363 for a list of all the required patches.

Reviewers: grosbach, void, ruiu

Reviewed By: ruiu

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D45138

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330058 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/MachObjectWriter.cpp
lib/MC/WinCOFFObjectWriter.cpp

index 25f451c..ba452af 100644 (file)
@@ -593,8 +593,8 @@ void MachObjectWriter::computeSymbolTable(
   }
 
   // External and undefined symbols are required to be in lexicographic order.
-  std::sort(ExternalSymbolData.begin(), ExternalSymbolData.end());
-  std::sort(UndefinedSymbolData.begin(), UndefinedSymbolData.end());
+  llvm::sort(ExternalSymbolData.begin(), ExternalSymbolData.end());
+  llvm::sort(UndefinedSymbolData.begin(), UndefinedSymbolData.end());
 
   // Set the symbol indices.
   Index = 0;
index 2558410..b589027 100644 (file)
@@ -567,10 +567,10 @@ void WinCOFFObjectWriter::writeSectionHeaders() {
   std::vector<COFFSection *> Arr;
   for (auto &Section : Sections)
     Arr.push_back(Section.get());
-  std::sort(Arr.begin(), Arr.end(),
-            [](const COFFSection *A, const COFFSection *B) {
-              return A->Number < B->Number;
-            });
+  llvm::sort(Arr.begin(), Arr.end(),
+             [](const COFFSection *A, const COFFSection *B) {
+               return A->Number < B->Number;
+             });
 
   for (auto &Section : Arr) {
     if (Section->Number == -1)