RE: Variable Length Arrays (VLA) proposal
Chris January <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <1372928011.2796.13.camel@gumtree> |
Hello Sanimir, On Thu, 2013-07-04 at 08:17 +0000, Agovic, Sanimir wrote: > Breakpoint 1, test () at vla.f90:4 > 4 ALLOCATE(vla (3, 4, 5)) > $1 = <not allocated> > type = integer(kind=4), ALLOCATABLE (0:1,0:1,0:1) > 5 ALLOCATE(character(len=2) :: str) > $2 = (( ( 0, 0) ( 0, 0) ) ( ( 0, 0) ( 0, 0) ) ) I have had reports this happens with the Fedora version of gfortran 4.7.2 (but not with the Debian version, IIRC) - I will look into it. > test () at vla.f90:6 > 6 vla(:,:,:) = 42 > Cannot access memory at address 0x6060c0 > warning: array or string index out of range > valarith.c:63: internal-error: find_size_for_pointer_math: Assertion `TYPE_CODE (ptr_type) == TYPE_CODE_PTR' failed. > [core dump] The error is correct - the subscript is out of range (Fortran array subscripts start at 1). Obviously the subsequent crash is not good - I believe it occurs because GDB switches to 'C style' array indexing for the Fortran string when the subscript is our of range, which doesn't work and currently crashes. Regards, Chris