RISC-V: Pc-rel to gp-rel relaxation function cleanup.
[deliverable/binutils-gdb.git] / gdb / p-valprint.c
index 82abe60c92992f7920f15552e6d60128a41b1160..766ccc604b7c6407e0429d73e08da9957ecc5f03 100644 (file)
@@ -1,6 +1,6 @@
 /* Support for printing Pascal values for GDB, the GNU debugger.
 
-   Copyright (C) 2000-2016 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -38,6 +38,7 @@
 #include "cp-abi.h"
 #include "cp-support.h"
 #include "objfiles.h"
+#include "common/byte-vector.h"
 \f
 
 /* Decorations for Pascal.  */
@@ -245,15 +246,17 @@ pascal_val_print (struct type *type,
              struct symbol *wsym = NULL;
              struct type *wtype;
              struct block *block = NULL;
-             struct field_of_this_result is_this_fld;
 
              if (want_space)
                fputs_filtered (" ", stream);
 
              if (msymbol.minsym != NULL)
-               wsym = lookup_symbol (MSYMBOL_LINKAGE_NAME (msymbol.minsym),
-                                     block,
-                                     VAR_DOMAIN, &is_this_fld).symbol;
+               {
+                 const char *search_name
+                   = MSYMBOL_SEARCH_NAME (msymbol.minsym);
+                 wsym = lookup_symbol_search_name (search_name, block,
+                                                   VAR_DOMAIN).symbol;
+               }
 
              if (wsym)
                {
@@ -486,7 +489,7 @@ const char pascal_vtbl_ptr_name[] =
 int
 pascal_object_is_vtbl_ptr_type (struct type *type)
 {
-  const char *type_name = type_name_no_tag (type);
+  const char *type_name = TYPE_NAME (type);
 
   return (type_name != NULL
          && strcmp (type_name, pascal_vtbl_ptr_name) == 0);
@@ -584,7 +587,7 @@ pascal_object_print_value_fields (struct type *type, const gdb_byte *valaddr,
                  fprintf_filtered (stream, "\n");
                  print_spaces_filtered (2 + 2 * recurse, stream);
                  fputs_filtered ("members of ", stream);
-                 fputs_filtered (type_name_no_tag (type), stream);
+                 fputs_filtered (TYPE_NAME (type), stream);
                  fputs_filtered (": ", stream);
                }
            }
@@ -726,10 +729,11 @@ pascal_object_print_value (struct type *type, const gdb_byte *valaddr,
     {
       LONGEST boffset = 0;
       struct type *baseclass = check_typedef (TYPE_BASECLASS (type, i));
-      const char *basename = type_name_no_tag (baseclass);
+      const char *basename = TYPE_NAME (baseclass);
       const gdb_byte *base_valaddr = NULL;
       LONGEST thisoffset;
       int skip = 0;
+      gdb::byte_vector buf;
 
       if (BASETYPE_VIA_VIRTUAL (type, i))
        {
@@ -769,20 +773,15 @@ pascal_object_print_value (struct type *type, const gdb_byte *valaddr,
 
          if (boffset < 0 || boffset >= TYPE_LENGTH (type))
            {
-             gdb_byte *buf;
-             struct cleanup *back_to;
+             buf.resize (TYPE_LENGTH (baseclass));
 
-             buf = (gdb_byte *) xmalloc (TYPE_LENGTH (baseclass));
-             back_to = make_cleanup (xfree, buf);
-
-             base_valaddr = buf;
-             if (target_read_memory (address + boffset, buf,
+             base_valaddr = buf.data ();
+             if (target_read_memory (address + boffset, buf.data (),
                                      TYPE_LENGTH (baseclass)) != 0)
                skip = 1;
              address = address + boffset;
              thisoffset = 0;
              boffset = 0;
-             do_cleanups (back_to);
            }
          else
            base_valaddr = valaddr;
@@ -891,9 +890,6 @@ pascal_object_print_static_field (struct value *val,
   common_val_print (val, stream, recurse, &opts, current_language);
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_pascal_valprint;
-
 void
 _initialize_pascal_valprint (void)
 {
This page took 0.026263 seconds and 4 git commands to generate.