id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 4002,UUID documentation improvement,harris.pc@…,Andy Tompkins,"I get ""uninitialised value(s)"" warnings in valgrind when I use the following code: boost::uuids::random_generator gen; boost::uuids::uuid u = gen(); if (u == u) // for valgrind's benefit whatever(); In the example, when I do not supply a random number generator to 'gen', it calls: detail::seed(*pURNG); Which does not initialise all its state variables (like rd_[]) before generating random numbers. I assume this is done to try and generate decent random numbers from uninitialised memory, especially when there is no /dev/urandom or similar available. That is ok, I suppose. However, it makes valgrind very noisy when comparing uuids and thus generates a lot of false-positives to sift through. It would be great if the documentation could talk a bit about this, and also suggest that you use a pattern like the following if the library-user wants to silence valgrind reports: boost::mt19937 ran; uuids::random_generator gen(ran); It would be nice if it could also tell the library user why this might not be such a good idea. (eg mt19937 doesn't seed the random values as randomly as uuid's seed_rnd.hpp, right?). Or perhaps you can surround the detail::seed() call with #ifdefs to allow the user to control when uninitialised memory is used for seeding (helpful to turn off when debugging). Thanks, Paul ",Bugs,closed,Boost 1.43.0,uuid,Boost 1.42.0,Optimization,fixed,,