gdb/fortran: Print 'void' type in lower case

For a program compiled with gfortran the base type names are written
as lower cases in the DWARF, and so GDB will display them as lower
case.  Additionally, in most places where GDB supplies its own type
names (for example all of the types defined in f-lang.c in
`build_fortran_types`), the type names are all lower case.

An exception to this is where GDB prints the void type for Fortran.
In this case GDB uses upper case.

I'm not aware of any reason why this type should merit special
attention, and it looks our of place when printing types, so this
commit changes from 'VOID' to 'void' to match all the other types.

gdb/ChangeLog:

	* f-lang.c (build_fortran_types): Change name of void type to
	lower case.
	* f-typeprint.c (f_type_print_base): Print the name of the void
	type, rather than a fixed string.
	* f-valprint.c (f_decorations): Use lower case void string.

gdb/testsuite/ChangeLog:

	* gdb.fortran/exprs.exp (test_convenience_variables): Expect lower
	case void string.
This commit is contained in:
Andrew Burgess 2019-02-16 16:39:29 +00:00
parent 1db455a76c
commit bbe75b9d00
6 changed files with 21 additions and 4 deletions

View File

@ -1,3 +1,11 @@
2019-04-30 Andrew Burgess <andrew.burgess@embecosm.com>
* f-lang.c (build_fortran_types): Change name of void type to
lower case.
* f-typeprint.c (f_type_print_base): Print the name of the void
type, rather than a fixed string.
* f-valprint.c (f_decorations): Use lower case void string.
2019-04-30 Andrew Burgess <andrew.burgess@embecosm.com>
Chris January <chris.january@arm.com>

View File

@ -689,7 +689,7 @@ build_fortran_types (struct gdbarch *gdbarch)
= GDBARCH_OBSTACK_ZALLOC (gdbarch, struct builtin_f_type);
builtin_f_type->builtin_void
= arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "VOID");
= arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "void");
builtin_f_type->builtin_character
= arch_type (gdbarch, TYPE_CODE_CHAR, TARGET_CHAR_BIT, "character");

View File

@ -328,7 +328,11 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show,
break;
case TYPE_CODE_VOID:
fprintfi_filtered (level, stream, "VOID");
{
gdbarch *gdbarch = get_type_arch (type);
struct type *void_type = builtin_f_type (gdbarch)->builtin_void;
fprintfi_filtered (level, stream, "%s", TYPE_NAME (void_type));
}
break;
case TYPE_CODE_UNDEF:

View File

@ -199,7 +199,7 @@ static const struct generic_val_print_decorations f_decorations =
")",
".TRUE.",
".FALSE.",
"VOID",
"void",
"{",
"}"
};

View File

@ -1,3 +1,8 @@
2019-04-30 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.fortran/exprs.exp (test_convenience_variables): Expect lower
case void string.
2019-04-30 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.fortran/complex.exp: Expand.

View File

@ -141,7 +141,7 @@ proc test_convenience_variables {} {
gdb_test "print (\$foo = 32) + 4" " = 36" \
"Use convenience variable assignment in arithmetic expression"
gdb_test "print \$bar" " = VOID" \
gdb_test "print \$bar" " = void" \
"Print contents of uninitialized convenience variable"
}