summaryrefslogtreecommitdiffstats
path: root/googletest/src
diff options
context:
space:
mode:
authorAlex Converse <aconverse@google.com>2017-04-11 10:20:18 -0700
committerAlex Converse <aconverse@google.com>2017-08-03 14:12:25 -0700
commitdeb99a9d268b7846cace92386414cd799002f855 (patch)
tree7c060315ef357144e5bfa34327069a3c4515cd3c /googletest/src
parent50f3bafb1aefcdd0704b045bcbf58b2a81720256 (diff)
downloadgoogletest-deb99a9d268b7846cace92386414cd799002f855.tar.gz
googletest-deb99a9d268b7846cace92386414cd799002f855.zip
Use wider types to prevent unsigned overflow diagnostics
The rest of the (covered) codebase is already integer overflow clean. This is a cherry-pick of an internal change. TESTED=gtest_shuffle_test goes from fail to pass with -fsanitize=integer
Diffstat (limited to 'googletest/src')
-rw-r--r--googletest/src/gtest.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc
index 4aed0e1c..6cac93d5 100644
--- a/googletest/src/gtest.cc
+++ b/googletest/src/gtest.cc
@@ -310,7 +310,8 @@ namespace internal {
// than kMaxRange.
UInt32 Random::Generate(UInt32 range) {
// These constants are the same as are used in glibc's rand(3).
- state_ = (1103515245U*state_ + 12345U) % kMaxRange;
+ // Use wider types than necessary to prevent unsigned overflow diagnostics.
+ state_ = static_cast<UInt32>(1103515245ULL*state_ + 12345U) % kMaxRange;
GTEST_CHECK_(range > 0)
<< "Cannot generate a number in the range [0, 0).";
OpenPOWER on IntegriCloud