mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
Have Module::createRNG return a unique_ptr
Instead of a raw pointer, this makes memory management safer. llvm-svn: 307762
This commit is contained in:
parent
182ebe0df7
commit
d1db3aa3f1
@ -249,7 +249,7 @@ public:
|
||||
/// when other randomness consuming passes are added or removed. In
|
||||
/// addition, the random stream will be reproducible across LLVM
|
||||
/// versions when the pass does not change.
|
||||
RandomNumberGenerator *createRNG(const Pass* P) const;
|
||||
std::unique_ptr<RandomNumberGenerator> createRNG(const Pass* P) const;
|
||||
|
||||
/// @}
|
||||
/// @name Module Level Mutators
|
||||
|
@ -88,7 +88,7 @@ Module::~Module() {
|
||||
delete static_cast<StringMap<NamedMDNode *> *>(NamedMDSymTab);
|
||||
}
|
||||
|
||||
RandomNumberGenerator *Module::createRNG(const Pass* P) const {
|
||||
std::unique_ptr<RandomNumberGenerator> Module::createRNG(const Pass* P) const {
|
||||
SmallString<32> Salt(P->getPassName());
|
||||
|
||||
// This RNG is guaranteed to produce the same random stream only
|
||||
@ -103,7 +103,7 @@ RandomNumberGenerator *Module::createRNG(const Pass* P) const {
|
||||
// store salt metadata from the Module constructor.
|
||||
Salt += sys::path::filename(getModuleIdentifier());
|
||||
|
||||
return new RandomNumberGenerator(Salt);
|
||||
return std::unique_ptr<RandomNumberGenerator>{new RandomNumberGenerator(Salt)};
|
||||
}
|
||||
|
||||
/// getNamedValue - Return the first global value in the module with
|
||||
|
@ -63,7 +63,7 @@ TEST(ModuleTest, randomNumberGenerator) {
|
||||
|
||||
std::array<int, NBCheck> RandomStreams[2];
|
||||
for (auto &RandomStream : RandomStreams) {
|
||||
std::unique_ptr<RandomNumberGenerator> RNG{M.createRNG(&DP)};
|
||||
std::unique_ptr<RandomNumberGenerator> RNG = M.createRNG(&DP);
|
||||
std::generate(RandomStream.begin(), RandomStream.end(),
|
||||
[&]() { return dist(*RNG); });
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user