http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47307

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic
                 CC|                            |burnus at gcc dot gnu.org
          Component|fortran                     |middle-end
            Summary|be used uninitialized in    |Uninitialized in this
                   |this function               |function: warning for
                   |                            |initialized, no warning for
                   |                            |uninitialized

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-01-15 
16:22:27 UTC ---
Move to middle end. From the dump:

readmo ()
{
  integer(kind=4) lopt[15];
  real(kind=4) convrt;
  [...]
  iflag = 0;
  [...]
    if (lopt[((integer(kind=8)) j + (integer(kind=8)) i * 3) + -4] < 0)
      {
        convrt = 1.0e+0;
        iflag = 1;
      }
  if (iflag != 0)
    ... access convrt ...

Thus, lopt is never set, but not warned for. But convrt is only accessed if it
is set. However, the middle-end (with optimization) only has
  warning: 'convrt' may be used uninitialized in this function

Reply via email to