[pushed] Remove ancient Ada workaround

Message ID 20230721134119.973372-1-tromey@adacore.com
State New
Headers
Series [pushed] Remove ancient Ada workaround |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-arm warning Patch failed to apply
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 warning Patch failed to apply
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 warning Patch failed to apply
linaro-tcwg-bot/tcwg_gdb_check--master-arm warning Patch failed to apply

Commit Message

Tom Tromey July 21, 2023, 1:41 p.m. UTC
  I ran across this very old code in gdb's Ada support.  After a bit of
archaeology, we couldn't determine what bug this might have been
working around.  It is no longer needed, so this patch removes it.

As this is entirely Ada-specific and was reviewed and tested at
AdaCore, I'm checking it in.
---
 gdb/ada-lang.c      | 17 -----------------
 gdb/ada-lang.h      |  2 --
 gdb/ada-typeprint.c |  3 ---
 gdb/ada-valprint.c  | 13 -------------
 4 files changed, 35 deletions(-)
  

Patch

diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 795207589d0..caeea58a803 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -2066,23 +2066,6 @@  ada_is_array_descriptor_type (struct type *type)
 	  && desc_arity (desc_bounds_type (type)) > 0);
 }
 
-/* Non-zero iff type is a partially mal-formed GNAT array
-   descriptor.  FIXME: This is to compensate for some problems with
-   debugging output from GNAT.  Re-examine periodically to see if it
-   is still needed.  */
-
-int
-ada_is_bogus_array_descriptor (struct type *type)
-{
-  return
-    type != NULL
-    && type->code () == TYPE_CODE_STRUCT
-    && (lookup_struct_elt_type (type, "P_BOUNDS", 1) != NULL
-	|| lookup_struct_elt_type (type, "P_ARRAY", 1) != NULL)
-    && !ada_is_array_descriptor_type (type);
-}
-
-
 /* If ARR has a record type in the form of a standard GNAT array descriptor,
    (fat pointer) returns the type of the array data described---specifically,
    a pointer-to-array type.  If BOUNDS is non-zero, the bounds data are filled
diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h
index 08620d7ed7c..9eb9326a86c 100644
--- a/gdb/ada-lang.h
+++ b/gdb/ada-lang.h
@@ -202,8 +202,6 @@  extern int ada_is_simple_array_type (struct type *);
 
 extern int ada_is_array_descriptor_type (struct type *);
 
-extern int ada_is_bogus_array_descriptor (struct type *);
-
 extern LONGEST ada_discrete_type_low_bound (struct type *);
 
 extern LONGEST ada_discrete_type_high_bound (struct type *);
diff --git a/gdb/ada-typeprint.c b/gdb/ada-typeprint.c
index 98faf315460..3d7f61ff25a 100644
--- a/gdb/ada-typeprint.c
+++ b/gdb/ada-typeprint.c
@@ -1065,9 +1065,6 @@  ada_print_type (struct type *type0, const char *varstring,
       case TYPE_CODE_STRUCT:
 	if (ada_is_array_descriptor_type (type))
 	  print_array_type (type, stream, show, level, flags);
-	else if (ada_is_bogus_array_descriptor (type))
-	  gdb_printf (stream,
-		      _("array (?) of ? (<mal-formed descriptor>)"));
 	else
 	  print_record_type (type, stream, show, level, flags);
 	break;
diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c
index 0d5916c715c..dacc72d9f1b 100644
--- a/gdb/ada-valprint.c
+++ b/gdb/ada-valprint.c
@@ -844,12 +844,6 @@  ada_val_print_struct_union (struct value *value,
 			    int recurse,
 			    const struct value_print_options *options)
 {
-  if (ada_is_bogus_array_descriptor (value->type ()))
-    {
-      gdb_printf (stream, "(...?)");
-      return;
-    }
-
   gdb_printf (stream, "(");
 
   if (print_field_values (value, value, stream, recurse, options,
@@ -1089,13 +1083,6 @@  ada_value_print (struct value *val0, struct ui_file *stream,
 	  gdb_printf (stream, ") ");
 	}
     }
-  else if (ada_is_bogus_array_descriptor (type))
-    {
-      gdb_printf (stream, "(");
-      type_print (type, "", stream, -1);
-      gdb_printf (stream, ") (...?)");
-      return;
-    }
 
   opts = *options;
   opts.deref_ref = true;