mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 20:14:06 +08:00
gdb/fortran: Use TYPE_CODE_CHAR for character types
Switch to using TYPE_CODE_CHAR for character types. This appears to have little impact on the test results as gFortran uses the DW_TAG_string_type to represent all character variables (as far as I can see). The only place this has an impact is when the user casts a variable to a character type, in which case GDB does now use the CHAR type, and prints the variable as both a value and a character, for example, before: (gdb) p ((character) 97) $1 = 97 and after: (gdb) p ((character) 97) $1 = 97 'a' gdb/ChangeLog: * f-lang.c (build_fortran_types): Use TYPE_CODE_CHAR for character types. gdb/testsuite/ChangeLog: * gdb.fortran/type-kinds.exp: Update expected results.
This commit is contained in:
parent
067630bdb5
commit
4a270568d9
@ -1,3 +1,8 @@
|
||||
2019-03-06 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* f-lang.c (build_fortran_types): Use TYPE_CODE_CHAR for character
|
||||
types.
|
||||
|
||||
2019-03-06 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* f-exp.y (convert_to_kind_type): Handle integer (kind=8).
|
||||
|
@ -366,7 +366,7 @@ build_fortran_types (struct gdbarch *gdbarch)
|
||||
= arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "VOID");
|
||||
|
||||
builtin_f_type->builtin_character
|
||||
= arch_integer_type (gdbarch, TARGET_CHAR_BIT, 0, "character");
|
||||
= arch_type (gdbarch, TYPE_CODE_CHAR, TARGET_CHAR_BIT, "character");
|
||||
|
||||
builtin_f_type->builtin_logical_s1
|
||||
= arch_boolean_type (gdbarch, TARGET_CHAR_BIT, 1, "logical*1");
|
||||
|
@ -1,3 +1,7 @@
|
||||
2019-03-06 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* gdb.fortran/type-kinds.exp: Update expected results.
|
||||
|
||||
2019-03-06 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* gdb.fortran/type-kinds.exp: Test new integer type kind.
|
||||
|
@ -38,7 +38,7 @@ proc test_cast_1_to_type_kind {base_type type_kind cast_result size_result} {
|
||||
|
||||
# Test parsing of `(kind=N)` type modifiers.
|
||||
proc test_basic_parsing_of_type_kinds {} {
|
||||
test_cast_1_to_type_kind "character" "1" "1" "1"
|
||||
test_cast_1_to_type_kind "character" "1" "1 '\\\\001'" "1"
|
||||
|
||||
test_cast_1_to_type_kind "complex" "4" "\\(1,0\\)" "8"
|
||||
test_cast_1_to_type_kind "complex" "8" "\\(1,0\\)" "16"
|
||||
|
Loading…
Reference in New Issue
Block a user