gdb/fortran: Add builtin 8-byte integer type with (kind=8) support
Add a new builtin type, an 8-byte integer, and allow GDB to parse 'integer (kind=8)', returning the new 8-byte integer. gdb/ChangeLog: * f-exp.y (convert_to_kind_type): Handle integer (kind=8). * f-lang.c (build_fortran_types): Setup builtin_integer_s8. * f-lang.h (struct builtin_f_type): Add builtin_integer_s8 field. gdb/testsuite/ChangeLog: * gdb.fortran/type-kinds.exp: Test new integer type kind.
This commit is contained in:
parent
3be47f7aa9
commit
067630bdb5
6 changed files with 18 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2019-03-06 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* f-exp.y (convert_to_kind_type): Handle integer (kind=8).
|
||||
* f-lang.c (build_fortran_types): Setup builtin_integer_s8.
|
||||
* f-lang.h (struct builtin_f_type): Add builtin_integer_s8 field.
|
||||
|
||||
2019-03-06 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* f-exp.y (convert_to_kind_type): Handle more type kinds.
|
||||
|
|
|
@ -865,6 +865,8 @@ convert_to_kind_type (struct type *basetype, int kind)
|
|||
return parse_f_type (pstate)->builtin_integer_s2;
|
||||
else if (kind == 4)
|
||||
return parse_f_type (pstate)->builtin_integer;
|
||||
else if (kind == 8)
|
||||
return parse_f_type (pstate)->builtin_integer_s8;
|
||||
}
|
||||
|
||||
error (_("unsupported kind %d for type %s"),
|
||||
|
|
|
@ -375,6 +375,10 @@ build_fortran_types (struct gdbarch *gdbarch)
|
|||
= arch_integer_type (gdbarch, gdbarch_short_bit (gdbarch), 0,
|
||||
"integer*2");
|
||||
|
||||
builtin_f_type->builtin_integer_s8
|
||||
= arch_integer_type (gdbarch, gdbarch_long_long_bit (gdbarch), 0,
|
||||
"integer*8");
|
||||
|
||||
builtin_f_type->builtin_logical_s2
|
||||
= arch_boolean_type (gdbarch, gdbarch_short_bit (gdbarch), 1,
|
||||
"logical*2");
|
||||
|
|
|
@ -66,6 +66,7 @@ struct builtin_f_type
|
|||
struct type *builtin_character;
|
||||
struct type *builtin_integer;
|
||||
struct type *builtin_integer_s2;
|
||||
struct type *builtin_integer_s8;
|
||||
struct type *builtin_logical;
|
||||
struct type *builtin_logical_s1;
|
||||
struct type *builtin_logical_s2;
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2019-03-06 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* gdb.fortran/type-kinds.exp: Test new integer type kind.
|
||||
|
||||
2019-03-06 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* gdb.fortran/type-kinds.exp (test_cast_1_to_type_kind): New
|
||||
|
|
|
@ -54,6 +54,7 @@ proc test_basic_parsing_of_type_kinds {} {
|
|||
|
||||
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"
|
||||
}
|
||||
|
||||
proc test_parsing_invalid_type_kinds {} {
|
||||
|
|
Loading…
Add table
Reference in a new issue