1 # Copyright 2024 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 standard_testfile ".f90" 17 load_lib "fortran.exp" 18 19 require allow_fortran_tests 20 21 if {[prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \ 22 {debug f90 quiet}]} { 23 return -1 24 } 25 26 if ![fortran_runto_main] { 27 untested "could not run to main" 28 return -1 29 } 30 31 # Try to access vla string / vla string array / string array values. 32 gdb_breakpoint [gdb_get_line_number "arr_vla1-print"] 33 gdb_continue_to_breakpoint "arr_vla1-print" 34 35 # GFortran emits DW_TAG_structure_type for strings and it has only 36 # DW_AT_declaration tag. This results in <incomplete type> in gdb. 37 if [test_compiler_info "gfortran*" f90] { setup_xfail *-*-* gcc/101826 } 38 gdb_test "print arr_vla1" \ 39 " = \\\('vlaaryvlaary', 'vlaaryvlaary', 'vlaaryvlaary', 'vlaaryvlaary', 'vlaaryvlaary'\\\)" \ 40 "print vla string array" 41 42 if [test_compiler_info "gfortran*" f90] { setup_xfail *-*-* gcc/101826 } 43 gdb_test "ptype arr_vla1" \ 44 "type = character\\*12 \\(5\\)" \ 45 "print variable length string array type" 46 gdb_test "print arr_vla2" \ 47 " = 'vlaary'" \ 48 "print variable length string" 49 gdb_test "ptype arr_vla2" \ 50 "type = character\\*6" \ 51 "print variable length string type" 52 gdb_test "print arr2" \ 53 " = \\\('vlaaryvla', 'vlaaryvla', 'vlaaryvla'\\\)" \ 54 "print string array" 55 gdb_test "ptype arr2" \ 56 "type = character\\*9 \\(3\\)" \ 57 "print string array type" 58 gdb_test "print rank(arr_vla1)" \ 59 "$decimal" \ 60 "print string array rank" 61