# Copyright 2019-2021 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 . # This file contains a test for printing the types of functions. if { [skip_fortran_tests] } { return -1 } standard_testfile .f90 load_lib "fortran.exp" if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}]} { return -1 } if ![fortran_runto_main] then { perror "couldn't run to main" continue } if {[test_compiler_info {clang-*}]} { set integer4 [fortran_int4] set logical4 [fortran_logical4] set integer8 [fortran_int8] gdb_test "ptype some_module::get_number" \ "type = $integer4 \\(Type number, $integer8 \\(10\\)\\)" gdb_test "ptype some_module::set_number" \ "type = void \\(Type number, $integer4\\, $integer8 \\(10\\)\\)" gdb_test "ptype is_bigger" \ "type = $logical4 \\($integer4, $integer4\\)" gdb_test "ptype say_numbers" \ "type = void \\($integer4, $integer4, $integer4\\)" gdb_test "ptype fun_ptr" \ "type = PTR TO -> \\( $integer4 \\(\\) \\($integer4\\) \\)" gdb_test "ptype say_string" \ "type = void \\(character\\*\\(\\*\\), $integer8\\)" gdb_test "ptype say_array" \ "type = void \\($integer8, $integer4 \\(:,:\\)\\)" } else { gdb_test "ptype some_module::get_number" \ "type = integer\\(kind=4\\) \\(Type __class_some_module_Number(_t)?\\)" gdb_test "ptype some_module::set_number" \ "type = void \\(Type __class_some_module_Number(_t)?, integer\\(kind=4\\)\\)" gdb_test "ptype is_bigger" \ "type = logical\\(kind=4\\) \\(integer\\(kind=4\\), integer\\(kind=4\\)\\)" gdb_test "ptype say_numbers" \ "type = void \\(integer\\(kind=4\\), integer\\(kind=4\\), integer\\(kind=4\\)\\)" gdb_test "ptype fun_ptr" \ "type = PTR TO -> \\( integer\\(kind=4\\) \\(\\) \\(REF TO -> \\( integer\\(kind=4\\) \\)\\) \\)" gdb_test "ptype say_string" \ "type = void \\(character\\*\\(\\*\\), integer\\(kind=\\d+\\)\\)" gdb_test "ptype say_array" \ "type = void \\(integer\\(kind=4\\) \\(:,:\\)\\)" }