diff options
Diffstat (limited to 'gdb/testsuite/gdb.fortran')
-rw-r--r-- | gdb/testsuite/gdb.fortran/type-kinds.exp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/gdb/testsuite/gdb.fortran/type-kinds.exp b/gdb/testsuite/gdb.fortran/type-kinds.exp index 9d19a9ceb39..725c3f0cecf 100644 --- a/gdb/testsuite/gdb.fortran/type-kinds.exp +++ b/gdb/testsuite/gdb.fortran/type-kinds.exp @@ -23,9 +23,15 @@ if { [skip_fortran_tests] } { continue } # Cast the value 1 to the type 'BASE_TYPE (kind=TYPE_KIND)'. The # expected result of the cast is CAST_RESULT, and the size of the -# value returned by the cast should be SIZE_RESULT. +# value returned by the cast should be SIZE_RESULT. If TYPE_KIND is +# the empty string then the cast is done to just 'BASE_TYPE'. proc test_cast_1_to_type_kind {base_type type_kind cast_result size_result} { - set type_string "$base_type (kind=$type_kind)" + if { $type_kind != "" } { + set kind_string " (kind=$type_kind)" + } else { + set kind_string "" + } + set type_string "${base_type}${kind_string}" gdb_test "p (($type_string) 1)" " = $cast_result" gdb_test "p sizeof (($type_string) 1)" " = $size_result" } @@ -34,21 +40,31 @@ proc test_cast_1_to_type_kind {base_type type_kind cast_result size_result} { proc test_basic_parsing_of_type_kinds {} { test_cast_1_to_type_kind "character" "1" "1 '\\\\001'" "1" + test_cast_1_to_type_kind "complex" "" "\\(1,0\\)" "8" test_cast_1_to_type_kind "complex" "4" "\\(1,0\\)" "8" test_cast_1_to_type_kind "complex" "8" "\\(1,0\\)" "16" test_cast_1_to_type_kind "complex" "16" "\\(1,0\\)" "32" + test_cast_1_to_type_kind "real" "" "1" "4" test_cast_1_to_type_kind "real" "4" "1" "4" test_cast_1_to_type_kind "real" "8" "1" "8" test_cast_1_to_type_kind "real" "16" "1" "16" + test_cast_1_to_type_kind "logical" "" "\\.TRUE\\." "4" test_cast_1_to_type_kind "logical" "1" "\\.TRUE\\." "1" test_cast_1_to_type_kind "logical" "4" "\\.TRUE\\." "4" test_cast_1_to_type_kind "logical" "8" "\\.TRUE\\." "8" + test_cast_1_to_type_kind "integer" "" "1" "4" test_cast_1_to_type_kind "integer" "2" "1" "2" test_cast_1_to_type_kind "integer" "4" "1" "4" test_cast_1_to_type_kind "integer" "8" "1" "8" + + test_cast_1_to_type_kind "double precision" "" "1" "8" + test_cast_1_to_type_kind "single precision" "" "1" "4" + + test_cast_1_to_type_kind "double complex" "" "\\(1,0\\)" "16" + test_cast_1_to_type_kind "single complex" "" "\\(1,0\\)" "8" } proc test_parsing_invalid_type_kinds {} { |