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

            Bug ID: 106089
           Summary: false positives with -Wuninitialized for allocation on
                    assignment
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: beliavsky at aol dot com
  Target Milestone: ---

For the code 

implicit none
integer, allocatable :: v(:)
character(len=1), allocatable :: a(:)
a = ["a"]
print*, a
v = [10,20]
print*,v
end

gfortran -Wall -Wextra xgfortran_warn.f90

gives many incorrect warnings:

xgfortran_warn.f90:4:9:

    4 | a = ["a"]
      |         ^
Warning: 'a.offset' is used uninitialized [-Wuninitialized]
xgfortran_warn.f90:3:37:

    3 | character(len=1), allocatable :: a(:)
      |                                     ^
note: 'a' declared here
xgfortran_warn.f90:4:9:

    4 | a = ["a"]
      |         ^
Warning: 'a.dim[0].lbound' is used uninitialized [-Wuninitialized]
xgfortran_warn.f90:3:37:

    3 | character(len=1), allocatable :: a(:)
      |                                     ^
note: 'a' declared here
xgfortran_warn.f90:4:9:

    4 | a = ["a"]
      |         ^
Warning: 'a.dim[0].ubound' is used uninitialized [-Wuninitialized]
xgfortran_warn.f90:3:37:

    3 | character(len=1), allocatable :: a(:)
      |                                     ^
note: 'a' declared here
xgfortran_warn.f90:4:9:

    4 | a = ["a"]
      |         ^
Warning: 'a.dim[0].lbound' may be used uninitialized [-Wmaybe-uninitialized]
xgfortran_warn.f90:3:37:

    3 | character(len=1), allocatable :: a(:)
      |                                     ^
note: 'a' declared here
xgfortran_warn.f90:4:9:

    4 | a = ["a"]
      |         ^
Warning: 'a.dim[0].ubound' may be used uninitialized [-Wmaybe-uninitialized]
xgfortran_warn.f90:3:37:

    3 | character(len=1), allocatable :: a(:)
      |                                     ^
note: 'a' declared here
xgfortran_warn.f90:4:9:

    4 | a = ["a"]
      |         ^
Warning: 'a.dim[0].ubound' may be used uninitialized [-Wmaybe-uninitialized]
xgfortran_warn.f90:3:37:

    3 | character(len=1), allocatable :: a(:)
      |                                     ^
note: 'a' declared here
xgfortran_warn.f90:4:9:

    4 | a = ["a"]
      |         ^
Warning: 'a.dim[0].lbound' may be used uninitialized [-Wmaybe-uninitialized]
xgfortran_warn.f90:3:37:

    3 | character(len=1), allocatable :: a(:)
      |                                     ^
note: 'a' declared here


The output is the same for gfortran 12.0.1 20220213 on Windows from
equation.com
and gfortran-11 on WSL2. The code combines two codes from a Fortran Discourse
discussion
https://fortran-lang.discourse.group/t/gfortran-uninitialized-warnings/3838 .

Reply via email to