aboutsummaryrefslogtreecommitdiff
path: root/gdb/f-lang.h
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2019-07-09 15:47:19 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2019-08-28 13:33:54 +0100
commit1f20c35ea4a0095e6a9d9b7819f6c437a0c4cfc1 (patch)
treeb65b098310de5ceb7dc0892d627a283626020821 /gdb/f-lang.h
parentfa463e9fc644e7a3bad39aa73bf6be72ea865805 (diff)
downloadgdb-1f20c35ea4a0095e6a9d9b7819f6c437a0c4cfc1.zip
gdb-1f20c35ea4a0095e6a9d9b7819f6c437a0c4cfc1.tar.gz
gdb-1f20c35ea4a0095e6a9d9b7819f6c437a0c4cfc1.tar.bz2
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.
Diffstat (limited to 'gdb/f-lang.h')
-rw-r--r--gdb/f-lang.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/f-lang.h b/gdb/f-lang.h
index 1ba529d..cf6024c 100644
--- a/gdb/f-lang.h
+++ b/gdb/f-lang.h
@@ -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 *);