Fix PR# 38900 - don't call swap inside of random_shuffle when we'd be swapping an element with itself
llvm-svn: 341975
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: e9cc5451293b36ef5f0c0d499db5b86c10895208
diff --git a/include/algorithm b/include/algorithm
index ee2a54d..55e1f9f 100644
--- a/include/algorithm
+++ b/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));
}
}
}