Make compare function in r342648 have strict weak ordering.
authorRichard Trieu <rtrieu@google.com>
Fri, 21 Sep 2018 21:20:33 +0000 (21:20 +0000)
committerRichard Trieu <rtrieu@google.com>
Fri, 21 Sep 2018 21:20:33 +0000 (21:20 +0000)
Comparison functions used in sorting algorithms need to have strict weak
ordering.  Remove the assert and allow comparisons on all lists.

llvm-svn: 342774

clang/lib/CodeGen/CGOpenMPRuntime.cpp

index 2f60d4d..01012cb 100644 (file)
@@ -7607,8 +7607,15 @@ public:
                   SI->getAssociatedDeclaration())
                 break;
             }
-            assert(CI != CE && SI != SE &&
-                   "Unexpected end of the map components.");
+
+            // Lists contain the same elements.
+            if (CI == CE && SI == SE)
+              return false;
+
+            // List with less elements is less than list with more elements.
+            if (CI == CE || SI == SE)
+              return CI == CE;
+
             const auto *FD1 = cast<FieldDecl>(CI->getAssociatedDeclaration());
             const auto *FD2 = cast<FieldDecl>(SI->getAssociatedDeclaration());
             if (FD1->getParent() == FD2->getParent())