[llvm-cov] Use a stable sort on sub-views
authorVedant Kumar <vsk@apple.com>
Tue, 24 Oct 2017 20:03:37 +0000 (20:03 +0000)
committerVedant Kumar <vsk@apple.com>
Tue, 24 Oct 2017 20:03:37 +0000 (20:03 +0000)
We need to use a stable sort on instantiation and expansion sub-views to
produce consistent output. Fortunately, we've gotten lucky and the tests
have checks for the stable order.

This is needed to unblock D39245. Once that lands, we'll have better
test coverage for sort non-determinism.

llvm-svn: 316490

llvm/tools/llvm-cov/SourceCoverageView.cpp

index f2e8788..31ab132 100644 (file)
@@ -178,8 +178,8 @@ void SourceCoverageView::print(raw_ostream &OS, bool WholeFile,
 
   // We need the expansions and instantiations sorted so we can go through them
   // while we iterate lines.
-  std::sort(ExpansionSubViews.begin(), ExpansionSubViews.end());
-  std::sort(InstantiationSubViews.begin(), InstantiationSubViews.end());
+  std::stable_sort(ExpansionSubViews.begin(), ExpansionSubViews.end());
+  std::stable_sort(InstantiationSubViews.begin(), InstantiationSubViews.end());
   auto NextESV = ExpansionSubViews.begin();
   auto EndESV = ExpansionSubViews.end();
   auto NextISV = InstantiationSubViews.begin();