gdb/fortran: Implement la_print_typedef for Fortran

Implement an la_print_typedef method for Fortran, this allows 'info
types' to work for Fortran.  The implementation is just copied from
ada_print_typedef (with the appropriate changes).

To support the testing of this patch I added a new proc,
fortran_character1, to lib/fortran.exp which returns a regexp to match
a 1-byte character type.  The regexp returned is correct for current
versions of gFortran.  All of the other regexp are guesses based on
all of the other support procs in lib/fortran.exp, I haven't tested
them myself.

gdb/ChangeLog:

	* f-lang.c (f_language_defn): Use f_print_typedef.
	* f-lang.h (f_print_typedef): Declare.
	* f-typeprint.c (f_print_typedef): Define.

gdb/testsuite/ChangeLog:

	* gdb.fortran/info-types.exp: New file.
	* gdb.fortran/info-types.f90: New file.
	* lib/fortran.exp (fortran_character1): New proc.
This commit is contained in:
Andrew Burgess
2019-07-09 15:47:19 +01:00
parent fa463e9fc6
commit 1f20c35ea4
8 changed files with 111 additions and 1 deletions

View File

@@ -28,6 +28,11 @@ struct parser_state;
extern int f_parse (struct parser_state *);
/* Implement the la_print_typedef language method for Fortran. */
extern void f_print_typedef (struct type *type, struct symbol *new_symbol,
struct ui_file *stream);
extern void f_print_type (struct type *, const char *, struct ui_file *, int,
int, const struct type_print_options *);