ba881f505b
gcc-4.9.2-6.fc21.x86_64 -> gcc-5.3.1-2.fc23.x86_64 -PASS: gdb.fortran/vla-ptype.exp: ptype pvla not initialized +FAIL: gdb.fortran/vla-ptype.exp: ptype pvla not initialized -PASS: gdb.fortran/vla-history.exp: print vla1 allocated +FAIL: gdb.fortran/vla-history.exp: print vla1 allocated -PASS: gdb.fortran/vla-history.exp: print $2 +FAIL: gdb.fortran/vla-history.exp: print $2 -PASS: gdb.fortran/vla-value.exp: print undefined pvla +FAIL: gdb.fortran/vla-value.exp: print undefined pvla -PASS: gdb.fortran/vla-value.exp: print non-associated &pvla +FAIL: gdb.fortran/vla-value.exp: print non-associated &pvla -PASS: gdb.fortran/vla-value.exp: print undefined pvla(1,3,8) +FAIL: gdb.fortran/vla-value.exp: print undefined pvla(1,3,8) These issues get fixed (or removed if no longer applicable) by attached patch. It is based on Googled: http://www.cs.rpi.edu/~szymansk/OOF90/bugs.html#5 When a pointer is declared its status is undefined, and cannot be safely queried with the associated intrinsic. -> nullify(VARNAME) + https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/268786 ALLOCATE is not supposed to initialize the array. -> Remove checks like an initial print is: \\( *0, *0, *0...\\) These regressions remain: -PASS: gdb.fortran/library-module.exp: print var_i in lib +FAIL: gdb.fortran/library-module.exp: print var_i in lib -PASS: gdb.fortran/library-module.exp: print var_i in main +FAIL: gdb.fortran/library-module.exp: print var_i in main I believe it is more a GDB bug (in a code contributed by me), filed: gdb.fortran/library-module.exp false regression on GCC upgrade https://sourceware.org/bugzilla/show_bug.cgi?id=19635 gdb/testsuite/ChangeLog 2016-02-14 Jan Kratochvil <jan.kratochvil@redhat.com> Fix compatibility with recent gfortran-5.3.1. * gdb.fortran/vla-history.exp (print vla1 allocated) (print vla2 allocated, print $2, print $3): Remove (print $4): Rename to ... (print $2): ... here. (print $9): Rename to ... (print $5): ... here. (print $10): Rename to ... (print $6): ... here. * gdb.fortran/vla.f90: Add pvla initialization.
57 lines
1.7 KiB
Fortran
57 lines
1.7 KiB
Fortran
! Copyright 2015-2016 Free Software Foundation, Inc.
|
|
!
|
|
! This program is free software; you can redistribute it and/or modify
|
|
! it under the terms of the GNU General Public License as published by
|
|
! the Free Software Foundation; either version 3 of the License, or
|
|
! (at your option) any later version.
|
|
!
|
|
! This program is distributed in the hope that it will be useful,
|
|
! but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
! GNU General Public License for more details.
|
|
!
|
|
! You should have received a copy of the GNU General Public License
|
|
! along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
program vla
|
|
real, target, allocatable :: vla1 (:, :, :)
|
|
real, target, allocatable :: vla2 (:, :, :)
|
|
real, target, allocatable :: vla3 (:, :)
|
|
real, pointer :: pvla (:, :, :)
|
|
logical :: l
|
|
nullify(pvla)
|
|
|
|
allocate (vla1 (10,10,10)) ! vla1-init
|
|
l = allocated(vla1)
|
|
|
|
allocate (vla2 (1:7,42:50,13:35)) ! vla1-allocated
|
|
l = allocated(vla2)
|
|
|
|
vla1(:, :, :) = 1311 ! vla2-allocated
|
|
vla1(3, 6, 9) = 42
|
|
vla1(1, 3, 8) = 1001
|
|
vla1(6, 2, 7) = 13
|
|
|
|
vla2(:, :, :) = 1311 ! vla1-filled
|
|
vla2(5, 45, 20) = 42
|
|
|
|
pvla => vla1 ! vla2-filled
|
|
l = associated(pvla)
|
|
|
|
pvla => vla2 ! pvla-associated
|
|
l = associated(pvla)
|
|
pvla(5, 45, 20) = 1
|
|
pvla(7, 45, 14) = 2
|
|
|
|
pvla => null() ! pvla-re-associated
|
|
l = associated(pvla)
|
|
|
|
deallocate (vla1) ! pvla-deassociated
|
|
l = allocated(vla1)
|
|
|
|
deallocate (vla2) ! vla1-deallocated
|
|
l = allocated(vla2)
|
|
|
|
allocate (vla3 (2,2)) ! vla2-deallocated
|
|
vla3(:,:) = 13
|
|
end program vla
|