summaryrefslogtreecommitdiff
path: root/gdb/f-typeprint.c
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2020-09-16 16:27:30 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2020-10-23 10:57:14 +0100
commit1a0ea39913588b4e7ae47e384683784314fca8fe (patch)
treeeaacbc454afff822ae1f7495b6bc16532ce2de90 /gdb/f-typeprint.c
parent88cefd9be076ea1f66b933be484d82f200b0f6c3 (diff)
downloadbinutils-gdb-1a0ea39913588b4e7ae47e384683784314fca8fe.tar.gz
gdb: move f_language class into a header file
Moves the f_language class from f-lang.c into f-lang.h. The benefit of this is that functions declared in other f-*.c files can become member functions without having to go through a level of indirection. Some additional support functions have now become private member functions of the f_language class, these are mostly functions that then called some other function that was itself a member of the language_defn class hierarchy. There should be no user visible changes after this commit. gdb/ChangeLog: * f-exp.y (f_parse): Rename to... (f_language::parser): ...this. * f-lang.c (f_get_encoding): Rename to... (f_language::get_encoding): ...this. (f_op_print_tab): Rename to... (f_language::op_print_tab): ...this. (exp_descriptor_f): Rename to... (f_language::exp_descriptor_tab): ...this. (class f_language): Moved to f-lang.h. (f_language::language_arch_info): New function, moved out of class declaration. (f_language::search_name_hash): Likewise. (f_language::lookup_symbol_nonlocal): Likewise. (f_language::get_symbol_name_matcher_inner): Likewise. * f-lang.h: Add 'valprint.h' include. (class f_language): Moved here from f-lang.c. * f-typeprint.c (f_type_print_args): Delete commented out declaration. (f_print_typedef): Rename to... (f_language::print_typedef): ...this. (f_print_type): Rename to... (f_language::print_type): ...this. (f_type_print_varspec_prefix): Delete declaration and rename to... (f_language::f_type_print_varspec_prefix): ...this. (f_type_print_varspec_suffix): Delete declaration and rename to... (f_language::f_type_print_varspec_suffix): ...this. (f_type_print_base): Delete declaration and rename to... (f_language::f_type_print_base): ...this. * f-valprint.c (f_value_print_inner): Rename to... (f_language::value_print_inner): ...this. * parse.c: Delete 'f-lang.h' include.
Diffstat (limited to 'gdb/f-typeprint.c')
-rw-r--r--gdb/f-typeprint.c82
1 files changed, 25 insertions, 57 deletions
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
index 577ed3b9d24..0e8bbd61498 100644
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -33,34 +33,22 @@
#include "typeprint.h"
#include "cli/cli-style.h"
-#if 0 /* Currently unused. */
-static void f_type_print_args (struct type *, struct ui_file *);
-#endif
-
-static void f_type_print_varspec_suffix (struct type *, struct ui_file *, int,
- int, int, int, bool);
-
-void f_type_print_varspec_prefix (struct type *, struct ui_file *,
- int, int);
-
-void f_type_print_base (struct type *, struct ui_file *, int, int);
-
-
-/* See documentation in f-lang.h. */
+/* See f-lang.h. */
void
-f_print_typedef (struct type *type, struct symbol *new_symbol,
- struct ui_file *stream)
+f_language::print_typedef (struct type *type, struct symbol *new_symbol,
+ struct ui_file *stream) const
{
type = check_typedef (type);
- f_print_type (type, "", stream, 0, 0, &type_print_raw_options);
+ print_type (type, "", stream, 0, 0, &type_print_raw_options);
}
-/* LEVEL is the depth to indent lines by. */
+/* See f-lang.h. */
void
-f_print_type (struct type *type, const char *varstring, struct ui_file *stream,
- int show, int level, const struct type_print_options *flags)
+f_language::print_type (struct type *type, const char *varstring,
+ struct ui_file *stream, int show, int level,
+ const struct type_print_options *flags) const
{
enum type_code code;
@@ -99,17 +87,12 @@ f_print_type (struct type *type, const char *varstring, struct ui_file *stream,
}
}
-/* Print any asterisks or open-parentheses needed before the
- variable name (to describe its type).
-
- On outermost call, pass 0 for PASSED_A_PTR.
- On outermost call, SHOW > 0 means should ignore
- any typename for TYPE and show its details.
- SHOW is always zero on recursive calls. */
+/* See f-lang.h. */
void
-f_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
- int show, int passed_a_ptr)
+f_language::f_type_print_varspec_prefix (struct type *type,
+ struct ui_file *stream,
+ int show, int passed_a_ptr) const
{
if (type == 0)
return;
@@ -158,19 +141,15 @@ f_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
}
}
-/* Print any array sizes, function arguments or close parentheses
- needed after the variable name (to describe its type).
- Args work like c_type_print_varspec_prefix.
+/* See f-lang.h. */
- PRINT_RANK_ONLY is true when TYPE is an array which should be printed
- without the upper and lower bounds being specified, this will occur
- when the array is not allocated or not associated and so there are no
- known upper or lower bounds. */
-
-static void
-f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
- int show, int passed_a_ptr, int demangled_args,
- int arrayprint_recurse_level, bool print_rank_only)
+void
+f_language::f_type_print_varspec_suffix (struct type *type,
+ struct ui_file *stream,
+ int show, int passed_a_ptr,
+ int demangled_args,
+ int arrayprint_recurse_level,
+ bool print_rank_only) const
{
/* No static variables are permitted as an error call may occur during
execution of this function. */
@@ -263,7 +242,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
fprintf_filtered (stream, ") ");
fprintf_filtered (stream, "(");
if (nfields == 0 && type->is_prototyped ())
- f_print_type (builtin_f_type (get_type_arch (type))->builtin_void,
+ print_type (builtin_f_type (get_type_arch (type))->builtin_void,
"", stream, -1, 0, 0);
else
for (i = 0; i < nfields; i++)
@@ -273,7 +252,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
fputs_filtered (", ", stream);
wrap_here (" ");
}
- f_print_type (type->field (i).type (), "", stream, -1, 0, 0);
+ print_type (type->field (i).type (), "", stream, -1, 0, 0);
}
fprintf_filtered (stream, ")");
}
@@ -301,22 +280,11 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
}
}
-/* Print the name of the type (or the ultimate pointer target,
- function value or array element), or the description of a
- structure or union.
-
- SHOW nonzero means don't print this type as just its name;
- show its real definition even if it has a name.
- SHOW zero means print just typename or struct tag if there is one
- SHOW negative means abbreviate structure elements.
- SHOW is decremented for printing of structure elements.
-
- LEVEL is the depth to indent by.
- We increase it for some recursive calls. */
+/* See f-lang.h. */
void
-f_type_print_base (struct type *type, struct ui_file *stream, int show,
- int level)
+f_language::f_type_print_base (struct type *type, struct ui_file *stream,
+ int show, int level) const
{
int index;