summaryrefslogtreecommitdiff
path: root/gdb/ada-typeprint.c
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2023-02-10 11:55:00 +0000
committerPedro Alves <pedro@palves.net>2023-02-15 20:56:57 +0000
commit751495be92b2b319fb66ce4e12b562a0e27c15fe (patch)
tree8843cf39c64185b58304136748ef7dee1c614f19 /gdb/ada-typeprint.c
parenta975d4e6bcf84d3676cbc47b1c9456cf4c3a32a6 (diff)
downloadbinutils-gdb-751495be92b2b319fb66ce4e12b562a0e27c15fe.tar.gz
Make "ptype INTERNAL_FUNCTION" in Ada print like other languages
Currently, printing the type of an internal function in Ada shows double <>s, like: (gdb) with language ada -- ptype $_isvoid type = <<internal function>> while all other languages print it with a single <>, like: (gdb) with language c -- ptype $_isvoid type = <internal function> I don't think there's a reason that Ada needs to be different. We currently print the double <>s because we take this path in ada_print_type: switch (type->code ()) { default: gdb_printf (stream, "<"); c_print_type (type, "", stream, show, level, language_ada, flags); gdb_printf (stream, ">"); break; ... and the type's name already has the <>s. Fix this by simply adding an early check for TYPE_CODE_INTERNAL_FUNCTION. Approved-By: Andrew Burgess <aburgess@redhat.com> Approved-By: Tom Tromey <tom@tromey.com> Change-Id: Ic2b6527b9240a367471431023f6e27e6daed5501 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30105
Diffstat (limited to 'gdb/ada-typeprint.c')
-rw-r--r--gdb/ada-typeprint.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/ada-typeprint.c b/gdb/ada-typeprint.c
index e95034c9285..3866b2d35eb 100644
--- a/gdb/ada-typeprint.c
+++ b/gdb/ada-typeprint.c
@@ -941,6 +941,13 @@ ada_print_type (struct type *type0, const char *varstring,
struct ui_file *stream, int show, int level,
const struct type_print_options *flags)
{
+ if (type0->code () == TYPE_CODE_INTERNAL_FUNCTION)
+ {
+ c_print_type (type0, "", stream, show, level,
+ language_ada, flags);
+ return;
+ }
+
struct type *type = ada_check_typedef (ada_get_base_type (type0));
/* If we can decode the original type name, use it. However, there
are cases where the original type is an internally-generated type