diff options
author | Nils-Christian Kempke <nils-christian.kempke@intel.com> | 2022-04-11 14:06:55 +0200 |
---|---|---|
committer | Nils-Christian Kempke <nils-christian.kempke@intel.com> | 2022-04-11 14:06:55 +0200 |
commit | 4ec8aa9e94858144a4ca831ae810d741a172d4b7 (patch) | |
tree | 036ee9dd4ea4883e78f2dc598f54aff68fb35180 | |
parent | ed9ec61174d955a1cb79f4b96dd5339d3e4013ca (diff) | |
download | gdb-4ec8aa9e94858144a4ca831ae810d741a172d4b7.zip gdb-4ec8aa9e94858144a4ca831ae810d741a172d4b7.tar.gz gdb-4ec8aa9e94858144a4ca831ae810d741a172d4b7.tar.bz2 |
gdb/fortran: change default logical type to builtin_logical
According to the Fortran standard, logical is of the size of a
'single numeric storage unit' (just like real and integer). For
gfortran, flang and ifx/ifort this storage unit (or the default
logical type) is of size kind 4, actually occupying 4 bytes of
storage, and so the default type for logical expressions in
Fortran should probably also be Logical*4 and not Logical*2. I
adapted GDB's behavior to be in line with
gfortran/ifort/ifx/flang.
-rw-r--r-- | gdb/f-lang.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/gdb.fortran/types.exp | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/gdb/f-lang.c b/gdb/f-lang.c index 8084624..fb28cb7 100644 --- a/gdb/f-lang.c +++ b/gdb/f-lang.c @@ -1570,7 +1570,7 @@ f_language::language_arch_info (struct gdbarch *gdbarch, add (builtin->builtin_void); lai->set_string_char_type (builtin->builtin_character); - lai->set_bool_type (builtin->builtin_logical_s2, "logical"); + lai->set_bool_type (builtin->builtin_logical, "logical"); } /* See language.h. */ diff --git a/gdb/testsuite/gdb.fortran/types.exp b/gdb/testsuite/gdb.fortran/types.exp index 4205d30..8122cbc 100644 --- a/gdb/testsuite/gdb.fortran/types.exp +++ b/gdb/testsuite/gdb.fortran/types.exp @@ -48,10 +48,10 @@ proc test_logical_literal_types_accepted {} { # Test the only possible values for a logical, TRUE and FALSE (and # also true and false). - gdb_test "pt .TRUE." "type = logical\\*2" - gdb_test "pt .FALSE." "type = logical\\*2" - gdb_test "pt .true." "type = logical\\*2" - gdb_test "pt .false." "type = logical\\*2" + gdb_test "pt .TRUE." "type = logical\\*4" + gdb_test "pt .FALSE." "type = logical\\*4" + gdb_test "pt .true." "type = logical\\*4" + gdb_test "pt .false." "type = logical\\*4" } proc test_float_literal_types_accepted {} { |