* gdbthread.h (struct thread_info): Add comments around
[deliverable/binutils-gdb.git] / gdb / ada-typeprint.c
index 8532d6ab268e3131b586fe38e9796f3561ee355d..e46637f48b353379c933e68bceee0278b4201b03 100644 (file)
@@ -366,6 +366,9 @@ print_array_type (struct type *type, struct ui_file *stream, int show,
   int bitsize;
   int n_indices;
 
+  if (ada_is_packed_array_type (type))
+    type = ada_coerce_to_simple_array_type (type);
+
   bitsize = 0;
   fprintf_filtered (stream, "array (");
 
@@ -374,8 +377,6 @@ print_array_type (struct type *type, struct ui_file *stream, int show,
     fprintf_filtered (stream, "...");
   else
     {
-      if (ada_is_packed_array_type (type))
-       type = ada_coerce_to_simple_array_type (type);
       if (type == NULL)
         {
           fprintf_filtered (stream, _("<undecipherable array type>"));
@@ -584,7 +585,7 @@ print_record_field_types (struct type *type, struct type *outer_type,
   flds = 0;
   len = TYPE_NFIELDS (type);
 
-  if (len == 0 && (TYPE_FLAGS (type) & TYPE_FLAG_STUB) != 0)
+  if (len == 0 && TYPE_STUB (type))
     return -1;
 
   for (i = 0; i < len; i += 1)
@@ -753,7 +754,7 @@ ada_print_type (struct type *type0, char *varstring, struct ui_file *stream,
                int show, int level)
 {
   struct type *type = ada_check_typedef (ada_get_base_type (type0));
-  char *type_name = decoded_type_name (type);
+  char *type_name = decoded_type_name (type0);
   int is_var_decl = (varstring != NULL && varstring[0] != '\0');
 
   if (type == NULL)
@@ -782,7 +783,17 @@ ada_print_type (struct type *type0, char *varstring, struct ui_file *stream,
   if (ada_is_aligner_type (type))
     ada_print_type (ada_aligned_type (type), "", stream, show, level);
   else if (ada_is_packed_array_type (type))
-    print_array_type (type, stream, show, level);
+    {
+      if (TYPE_CODE (type) == TYPE_CODE_PTR)
+        {
+          fprintf_filtered (stream, "access ");
+          print_array_type (TYPE_TARGET_TYPE (type), stream, show, level);
+        }
+      else
+        {
+          print_array_type (type, stream, show, level);
+        }
+    }
   else
     switch (TYPE_CODE (type))
       {
@@ -802,6 +813,9 @@ ada_print_type (struct type *type0, char *varstring, struct ui_file *stream,
       case TYPE_CODE_ARRAY:
        print_array_type (type, stream, show, level);
        break;
+      case TYPE_CODE_BOOL:
+       fprintf_filtered (stream, "(false, true)");
+       break;
       case TYPE_CODE_INT:
        if (ada_is_fixed_point_type (type))
          print_fixed_point_type (type, stream);
This page took 0.02442 seconds and 4 git commands to generate.