[Bug fortran/86117] New: bogus warning maybe-uninitialized with class(*) and source argument in allocate
mscfd at gmx dot net
gcc-bugzilla@gcc.gnu.org
Tue Jun 12 09:40:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86117
Bug ID: 86117
Summary: bogus warning maybe-uninitialized with class(*) and
source argument in allocate
Product: gcc
Version: 8.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: mscfd at gmx dot net
Target Milestone: ---
Compiling the following module with
gfortran -Og -Wall -fcheck=all -c mod.f90
gives
Warning: ‘<anonymous>’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
When leaving out any one of the three options -Og, -Wall or -fcheck=all the
warning disappears.
When replacing class(*) with integer the warning also disappears.
When using scalars for a and b (omitting the dimension(:) part and the do loop)
the warning also disappears.
module mod
private
public sub
type, public :: generic
class(*), allocatable :: item
! with integer instead of class(*), there is no warning
! integer, allocatable :: item
end type generic
contains
subroutine sub(a, b)
type(generic), dimension(:), intent(in) :: a
type(generic), dimension(:), intent(out) :: b
integer :: i
do i = 1, 10
allocate(b(i)%item, source=a(i)%item)
end do
end subroutine sub
end module mod
More information about the Gcc-bugs
mailing list