https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99536

            Bug ID: 99536
           Summary: unexplained warning on "uninitialized value"
           Product: gcc
           Version: 5.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: wuz73 at hotmail dot com
  Target Milestone: ---

Although the example in
http://www.cplusplus.com/reference/random/normal_distribution/ compiled fine, I
got a warning on uninitialized value in a similar code below.

#include <random>
void foo(double);
int main()
{
  std::default_random_engine generator;
  std::normal_distribution<double> norm_dist(0,1);
  for(int i=0; i<3; i++)
    foo(norm_dist(generator));
  return 0;
}

When compiled with "g++ -std=c++11 -Wall -ffast-math -O -c foo.cpp" using
gcc5.3.1 on CentOS7.2, I got:

foo.cpp:8:30: warning: ‘norm_dist.std::normal_distribution::_M_saved’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
foo(norm_dist(generator));

Note that without -O, -ffast-math, or the for-loop, the code compiled fine
without any warning.

Reply via email to