Change inferior thread list to be a thread map
[deliverable/binutils-gdb.git] / gdb / f-valprint.c
index 0dea6ba407eedea991b80a79b07d38fa6e71cb2d..35dc90dcb0f6471dc1013ea74edea3bc0889e067 100644 (file)
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
-
-/* Local non-gdb includes.  */
-#include "block.h"
-#include "command.h"
-#include "dictionary.h"
+#include "symtab.h"
+#include "gdbtypes.h"
 #include "expression.h"
+#include "value.h"
+#include "valprint.h"
+#include "language.h"
 #include "f-lang.h"
 #include "frame.h"
 #include "gdbcore.h"
-#include "gdbtypes.h"
-#include "language.h"
-#include "symtab.h"
-#include "valprint.h"
-#include "value.h"
+#include "command.h"
+#include "block.h"
+#include "dictionary.h"
+#include "cli/cli-style.h"
+#include "gdbarch.h"
 
 static void f77_get_dynamic_length_of_aggregate (struct type *);
 
@@ -121,7 +121,12 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type,
 
   if (nss != ndimensions)
     {
-      size_t dim_size = TYPE_LENGTH (TYPE_TARGET_TYPE (type));
+      struct gdbarch *gdbarch = get_type_arch (type);
+      size_t dim_size = type_length_units (TYPE_TARGET_TYPE (type));
+      int unit_size = gdbarch_addressable_memory_unit_size (gdbarch);
+      size_t byte_stride = TYPE_ARRAY_BIT_STRIDE (type) / (unit_size * 8);
+      if (byte_stride == 0)
+       byte_stride = dim_size;
       size_t offs = 0;
 
       for (i = lowerbound;
@@ -138,7 +143,7 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type,
                             value_embedded_offset (subarray),
                             value_address (subarray),
                             stream, recurse, subarray, options, elts);
-         offs += dim_size;
+         offs += byte_stride;
          fprintf_filtered (stream, ") ");
        }
       if (*elts >= options->print_max && i < upperbound)
@@ -201,7 +206,7 @@ static const struct generic_val_print_decorations f_decorations =
   ")",
   ".TRUE.",
   ".FALSE.",
-  "VOID",
+  "void",
   "{",
   "}"
 };
@@ -388,17 +393,17 @@ info_common_command_for_block (const struct block *block, const char *comname,
 
        gdb_assert (SYMBOL_CLASS (sym) == LOC_COMMON_BLOCK);
 
-       if (comname && (!SYMBOL_LINKAGE_NAME (sym)
-                       || strcmp (comname, SYMBOL_LINKAGE_NAME (sym)) != 0))
+       if (comname && (!sym->linkage_name ()
+                       || strcmp (comname, sym->linkage_name ()) != 0))
          continue;
 
        if (*any_printed)
          putchar_filtered ('\n');
        else
          *any_printed = 1;
-       if (SYMBOL_PRINT_NAME (sym))
+       if (sym->print_name ())
          printf_filtered (_("Contents of F77 COMMON block '%s':\n"),
-                          SYMBOL_PRINT_NAME (sym));
+                          sym->print_name ());
        else
          printf_filtered (_("Contents of blank COMMON block:\n"));
        
@@ -407,19 +412,20 @@ info_common_command_for_block (const struct block *block, const char *comname,
            struct value *val = NULL;
 
            printf_filtered ("%s = ",
-                            SYMBOL_PRINT_NAME (common->contents[index]));
+                            common->contents[index]->print_name ());
 
-           TRY
+           try
              {
                val = value_of_variable (common->contents[index], block);
                value_print (val, gdb_stdout, &opts);
              }
 
-           CATCH (except, RETURN_MASK_ERROR)
+           catch (const gdb_exception_error &except)
              {
-               printf_filtered ("<error reading variable: %s>", except.message);
+               fprintf_styled (gdb_stdout, metadata_style.style (),
+                               "<error reading variable: %s>",
+                               except.what ());
              }
-           END_CATCH
 
            putchar_filtered ('\n');
          }
This page took 0.053897 seconds and 4 git commands to generate.