# V679. The 'X' variable was not initialized. This variable is passed by reference to the 'Foo' function in which its value will be used.

The analyzer has detected an issue when an uninitialized variable is being passed into a function by reference or by pointer. The function tries to read a value from this variable.

Here is an example.

    void Copy(int &x, int &y)
    {
      x = y;
    }
    void Foo()
    {
      int x, y;
      x = 1;
      Copy(x, y);
    }

This is a very simple artificial sample, of course, but it explains the point very well. The 'y' variable is uninitialized. A reference to this variable is passed into the Copy() function which tries to read from this uninitialized variable.

The fixed code may look like this:

    void Copy(int &x, int &y)
    {
      x = y;
    }
    void Foo()
    {
      int x, y;
      y = 1;
      Copy(x, y);
    }

This diagnostic is classified as:

CWE-457 CERT-EXP33-C CERT-EXP53-CPP