1 # Copyright 2021-2025 Free Software Foundation, Inc. 2 3 # This program is free software; you can redistribute it and/or modify 4 # it under the terms of the GNU General Public License as published by 5 # the Free Software Foundation; either version 3 of the License, or 6 # (at your option) any later version. 7 # 8 # This program is distributed in the hope that it will be useful, 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 # GNU General Public License for more details. 12 # 13 # You should have received a copy of the GNU General Public License 14 # along with this program. If not, see <http://www.gnu.org/licenses/> . 15 16 # Testing GDB's implementation of ALLOCATED keyword. 17 18 require allow_fortran_tests 19 20 standard_testfile ".f90" 21 load_lib fortran.exp 22 23 if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \ 24 {debug f90}]} { 25 return -1 26 } 27 28 if ![fortran_runto_main] { 29 return -1 30 } 31 32 # Avoid libc symbols, in particular the 'array' type. 33 gdb_test_no_output "nosharedlibrary" 34 35 # Set all the breakpoints. 36 for { set i 1 } { $i < 6 } { incr i } { 37 gdb_breakpoint [gdb_get_line_number "Breakpoint $i"] 38 } 39 40 # Run to each test and check GDB calculates the ALLOCATED value of the 41 # array variable correctly. We compare to a value calculated within 42 # the test program itself. 43 for { set i 1 } { $i < 6 } { incr i } { 44 with_test_prefix "Breakpoint $i" { 45 gdb_continue_to_breakpoint "found it" 46 set expected [get_valueof "" "is_allocated" "*unknown*"] 47 set calculated [get_valueof "" "allocated (array)" "*missing*"] 48 gdb_assert { [string eq ${expected} ${calculated}] } \ 49 "expected and calculated results match" 50 } 51 } 52