[Bug fortran/88455] New: False positive for allocatable character array of deferred length, ALLOCATE using SOURCE/MOLD [-Wuninitialized]
adam at aphirst dot karoo.co.uk
gcc-bugzilla@gcc.gnu.org
Tue Dec 11 22:02:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88455
Bug ID: 88455
Summary: False positive for allocatable character array of
deferred length, ALLOCATE using SOURCE/MOLD
[-Wuninitialized]
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: adam at aphirst dot karoo.co.uk
Target Milestone: ---
program test
implicit none
call F(1, 10, 30)
contains
subroutine F(i,j,k)
integer, intent(in) :: i, j, k
character(:), allocatable :: line(:)
! with a hard-coded len, the warning goes away
! similarly if it's deferred-length but scalar
!character(k), allocatable :: line(:)
allocate( line(i:j), source = repeat(" ",k) )
print *, size(line) ! gives 10
print *, len(line) ! gives 30
end subroutine
end program test
---
Warning: ‘.line’ is used uninitialized in this function [-Wuninitialized]
---
Using a single ALLOCATE statement for an allocatable array of CHARACTER with
deferred length (using either SOURCE or MOLD) results in a false positive for
uninitialised variables.
The issue doesn't occur if the variable is ONLY an allocatable array, or
respectively if it's ONLY of deferred length. The issue occurs only when both
degrees of freedom are present.
System:
-------
gcc (GCC) 8.2.1 20181127
Arch Linux x86_64
More information about the Gcc-bugs
mailing list