* gdbint.texinfo (Formatting): Mention some formatting guidelines
[deliverable/binutils-gdb.git] / gdb / m2-valprint.c
index e27ce8c1a2e7e57940689164df23b716bb218546..f22ee2fb8a44ecebf1c7e3ead370ea0dc198a614 100644 (file)
@@ -1,7 +1,7 @@
 /* Support for printing Modula 2 values for GDB, the GNU debugger.
 
    Copyright (C) 1986, 1988, 1989, 1991, 1992, 1996, 1998, 2000, 2005, 2006,
-                 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+                 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -201,9 +201,10 @@ m2_print_unbounded_array (struct type *type, const gdb_byte *valaddr,
   len = unpack_field_as_long (type, valaddr + embedded_offset, 1);
 
   fprintf_filtered (stream, "{");  
-  m2_print_array_contents (value_type (val), value_contents(val),
+  m2_print_array_contents (value_type (val),
+                          value_contents_for_printing (val),
                           value_embedded_offset (val), addr, stream,
-                          recurse, NULL, options, len);
+                          recurse, val, options, len);
   fprintf_filtered (stream, ", HIGH = %d}", (int) len);
 }
 
@@ -235,7 +236,7 @@ print_unpacked_pointer (struct type *type,
       && TYPE_CODE (elttype) == TYPE_CODE_INT
       && (options->format == 0 || options->format == 's')
       && addr != 0)
-    return val_print_string (TYPE_TARGET_TYPE (type), addr, -1,
+    return val_print_string (TYPE_TARGET_TYPE (type), NULL, addr, -1,
                             stream, options);
   
   return 0;
@@ -296,11 +297,11 @@ m2_print_array_contents (struct type *type, const gdb_byte *valaddr,
           || ((current_language->la_language == language_m2)
               && (TYPE_CODE (type) == TYPE_CODE_CHAR)))
          && (options->format == 0 || options->format == 's'))
-       val_print_string (type, address, len+1, stream, options);
+       val_print_string (type, NULL, address, len+1, stream, options);
       else
        {
          fprintf_filtered (stream, "{");
-         val_print_array_elements (type, valaddr + embedded_offset,
+         val_print_array_elements (type, valaddr, embedded_offset,
                                    address, stream, recurse, val,
                                    options, 0);
          fprintf_filtered (stream, "}");
@@ -323,7 +324,7 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
              const struct value_print_options *options)
 {
   struct gdbarch *gdbarch = get_type_arch (type);
-  unsigned int i = 0;  /* Number of characters printed */
+  unsigned int i = 0;  /* Number of characters printed */
   unsigned len;
   struct type *elttype;
   unsigned eltlen;
@@ -354,7 +355,7 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
                {
                  unsigned int temp_len;
 
-                 /* Look for a NULL char. */
+                 /* Look for a NULL char.  */
                  for (temp_len = 0;
                       (valaddr + embedded_offset)[temp_len]
                         && temp_len < len && temp_len < options->print_max;
@@ -370,8 +371,9 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
          else
            {
              fprintf_filtered (stream, "{");
-             val_print_array_elements (type, valaddr + embedded_offset,
-                                       address, stream, recurse, original_value,
+             val_print_array_elements (type, valaddr, embedded_offset,
+                                       address, stream,
+                                       recurse, original_value,
                                        options, 0);
              fprintf_filtered (stream, "}");
            }
@@ -386,8 +388,8 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
        print_variable_at_address (type, valaddr + embedded_offset,
                                   stream, recurse, options);
       else if (options->format && options->format != 's')
-       print_scalar_formatted (valaddr + embedded_offset, type,
-                               options, 0, stream);
+       val_print_scalar_formatted (type, valaddr, embedded_offset,
+                                   original_value, options, 0, stream);
       else
        {
          addr = unpack_pointer (type, valaddr + embedded_offset);
@@ -448,8 +450,8 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
     case TYPE_CODE_ENUM:
       if (options->format)
        {
-         print_scalar_formatted (valaddr + embedded_offset, type,
-                                 options, 0, stream);
+         val_print_scalar_formatted (type, valaddr, embedded_offset,
+                                     original_value, options, 0, stream);
          break;
        }
       len = TYPE_NFIELDS (type);
@@ -475,8 +477,8 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
     case TYPE_CODE_FUNC:
       if (options->format)
        {
-         print_scalar_formatted (valaddr + embedded_offset, type,
-                                 options, 0, stream);
+         val_print_scalar_formatted (type, valaddr, embedded_offset,
+                                     original_value, options, 0, stream);
          break;
        }
       /* FIXME, we should consider, at least for ANSI C language, eliminating
@@ -495,8 +497,8 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
 
          opts.format = (options->format ? options->format
                         : options->output_format);
-         print_scalar_formatted (valaddr + embedded_offset, type,
-                                 &opts, 0, stream);
+         val_print_scalar_formatted (type, valaddr, embedded_offset,
+                                     original_value, &opts, 0, stream);
        }
       else
        {
@@ -533,8 +535,8 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
 
          opts.format = (options->format ? options->format
                         : options->output_format);
-         print_scalar_formatted (valaddr + embedded_offset, type,
-                                 &opts, 0, stream);
+         val_print_scalar_formatted (type, valaddr, embedded_offset,
+                                     original_value, &opts, 0, stream);
        }
       else
        val_print_type_code_int (type, valaddr + embedded_offset, stream);
@@ -547,8 +549,8 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
 
          opts.format = (options->format ? options->format
                         : options->output_format);
-         print_scalar_formatted (valaddr + embedded_offset, type,
-                                 &opts, 0, stream);
+         val_print_scalar_formatted (type, valaddr, embedded_offset,
+                                     original_value, &opts, 0, stream);
        }
       else
        {
@@ -564,8 +566,8 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
 
     case TYPE_CODE_FLT:
       if (options->format)
-       print_scalar_formatted (valaddr + embedded_offset, type,
-                               options, 0, stream);
+       val_print_scalar_formatted (type, valaddr, embedded_offset,
+                                   original_value, options, 0, stream);
       else
        print_floating (valaddr + embedded_offset, type, stream);
       break;
This page took 0.025819 seconds and 4 git commands to generate.