From 5f7ddb1456d5b926e85710da690bf548ef0c9fc8 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sun, 22 Aug 2021 21:00:43 +0200 Subject: Merge llvm-project main llvmorg-13-init-16847-g88e66fa60ae5 This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-13-init-16847-g88e66fa60ae5, the last commit before the upstream release/13.x branch was created. PR: 258209 (cherry picked from commit fe6060f10f634930ff71b7c50291ddc610da2475) --- .../llvm/lib/Support/RandomNumberGenerator.cpp | 24 +++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'contrib/llvm-project/llvm/lib/Support/RandomNumberGenerator.cpp') diff --git a/contrib/llvm-project/llvm/lib/Support/RandomNumberGenerator.cpp b/contrib/llvm-project/llvm/lib/Support/RandomNumberGenerator.cpp index f9c41ee5eaaf..aea0132a93fe 100644 --- a/contrib/llvm-project/llvm/lib/Support/RandomNumberGenerator.cpp +++ b/contrib/llvm-project/llvm/lib/Support/RandomNumberGenerator.cpp @@ -13,6 +13,9 @@ //===----------------------------------------------------------------------===// #include "llvm/Support/RandomNumberGenerator.h" + +#include "DebugOptions.h" + #include "llvm/Support/CommandLine.h" #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" @@ -25,13 +28,20 @@ using namespace llvm; #define DEBUG_TYPE "rng" - -static cl::opt Seed("rng-seed", cl::value_desc("seed"), cl::Hidden, - cl::desc("Seed for the random number generator"), - cl::init(0)); +namespace { +struct CreateSeed { + static void *call() { + return new cl::opt( + "rng-seed", cl::value_desc("seed"), cl::Hidden, + cl::desc("Seed for the random number generator"), cl::init(0)); + } +}; +} // namespace +static ManagedStatic, CreateSeed> Seed; +void llvm::initRandomSeedOptions() { *Seed; } RandomNumberGenerator::RandomNumberGenerator(StringRef Salt) { - LLVM_DEBUG(if (Seed == 0) dbgs() + LLVM_DEBUG(if (*Seed == 0) dbgs() << "Warning! Using unseeded random number generator.\n"); // Combine seed and salts using std::seed_seq. @@ -41,8 +51,8 @@ RandomNumberGenerator::RandomNumberGenerator(StringRef Salt) { // twister constructor copies these correctly into its initial state. std::vector Data; Data.resize(2 + Salt.size()); - Data[0] = Seed; - Data[1] = Seed >> 32; + Data[0] = *Seed; + Data[1] = *Seed >> 32; llvm::copy(Salt, Data.begin() + 2); -- cgit v1.2.3