http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59065
Bug ID: 59065
Summary: questionable bounds for unassociated
allocatable/pointer arrays?
Product: gcc
Version: 4.8.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: zeccav at gmail dot com
! gfortran produces SIGSEV at run time for access to unassociated
allocatable/pointer arrays
! questionable bounds for unassociated allocatable/pointer arrays?
! such arrays properties are undefined but I suggest lbound be 1, ubound 0,
size 0
! to minimize damage to erroneous code accessing such arrays
! -fcheck=all does not help
! Linux Fedora 19 bash shell 4.2.45-1
real, pointer :: ap(:)=>null()
real, allocatable :: aa(:)
print *,lbound(aa),ubound(aa),size(aa) ! displays "0 garbage garbage"
should be "1 0 0"?
print *,lbound(ap),ubound(ap),size(ap) ! displays "0 0 1" should be "1 0
0"?
call sub(aa,ap)
contains
subroutine sub(va,vp)
real, intent(in) :: vp(:)
real, intent(in) :: va(:)
print *,lbound(va),ubound(va),size(va) ! displays "1 garbage garbage"
should be "1 0 0"?
print *,lbound(vp),ubound(vp),size(vp) ! displays "1 1 1" should be "1 0
0"?
print *,va(1) ! SIGSEGV here -fcheck=all does not detect it
print *,vp(1) ! ditto
end subroutine
end