Merge pull request #1180 from aconverse/master

Use wider types to prevent unsigned overflow diagnostics
This commit is contained in:
Gennadiy Civil 2017-08-07 15:37:15 -04:00 committed by GitHub
commit 7890f7215e

View File

@ -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).";