aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNils-Christian Kempke <nils-christian.kempke@intel.com>2022-04-11 14:06:55 +0200
committerNils-Christian Kempke <nils-christian.kempke@intel.com>2022-04-11 14:06:55 +0200
commit4ec8aa9e94858144a4ca831ae810d741a172d4b7 (patch)
tree036ee9dd4ea4883e78f2dc598f54aff68fb35180
parented9ec61174d955a1cb79f4b96dd5339d3e4013ca (diff)
downloadgdb-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.c2
-rw-r--r--gdb/testsuite/gdb.fortran/types.exp8
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 {} {