Fix PR# 38900 - don't call swap inside of random_shuffle when we'd be swapping an element with itself

llvm-svn: 341975
diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm
index ee2a54d..55e1f9f 100644
--- a/libcxx/include/algorithm
+++ b/libcxx/include/algorithm
@@ -2987,7 +2987,8 @@
         for (--__last; __first < __last; ++__first, --__d)
         {
             difference_type __i = __rand(__d);
-            swap(*__first, *(__first + __i));
+            if (__i != difference_type(0))
+	            swap(*__first, *(__first + __i));
         }
     }
 }