mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:29:51 +00:00
[llvm-stress] Ensure that the C++11 random device respects its min/max values (PR32585)
As noted on PR32585, the change in D29780/rL295325 resulted in calls to Rand32() (values 0 -> 0xFFFFFFFF) but the min()/max() operators indicated it would be (0 -> 0x7FFFF). This patch changes the random operator to call Rand() instead which does respect the 0 -> 0x7FFFF range and asserts that the value is in range as well. Differential Revision: https://reviews.llvm.org/D34089 llvm-svn: 306281
This commit is contained in:
parent
b58321ae94
commit
55f6ff76c2
@ -116,10 +116,14 @@ public:
|
||||
|
||||
/// Make this like a C++11 random device
|
||||
typedef uint32_t result_type;
|
||||
uint32_t operator()() { return Rand32(); }
|
||||
static constexpr result_type min() { return 0; }
|
||||
static constexpr result_type max() { return 0x7ffff; }
|
||||
|
||||
uint32_t operator()() {
|
||||
uint32_t Val = Rand();
|
||||
assert(Val <= max() && "Random value out of range");
|
||||
return Val;
|
||||
}
|
||||
|
||||
private:
|
||||
unsigned Seed;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user