RISC-V: Force variables to .data for code_elim.
[deliverable/binutils-gdb.git] / gdb / solib-aix.c
index 5339f11261d2c5840fac9ec8d1b346e7a53ece9a..8e8901e8e21dcfca69488903d3c418f70b3164c1 100644 (file)
@@ -279,10 +279,10 @@ solib_aix_get_library_list (struct inferior *inf, const char *warning_msg)
   if (data->library_list != NULL)
     return data->library_list;
 
-  gdb::unique_xmalloc_ptr<char> library_document
-    = target_read_stralloc (&current_target, TARGET_OBJECT_LIBRARIES_AIX,
+  gdb::optional<gdb::char_vector> library_document
+    = target_read_stralloc (current_top_target (), TARGET_OBJECT_LIBRARIES_AIX,
                            NULL);
-  if (library_document == NULL && warning_msg != NULL)
+  if (!library_document && warning_msg != NULL)
     {
       warning (_("%s (failed to read TARGET_OBJECT_LIBRARIES_AIX)"),
               warning_msg);
@@ -292,9 +292,9 @@ solib_aix_get_library_list (struct inferior *inf, const char *warning_msg)
   if (solib_aix_debug)
     fprintf_unfiltered (gdb_stdlog,
                        "DEBUG: TARGET_OBJECT_LIBRARIES_AIX = \n%s\n",
-                       library_document.get ());
+                       library_document->data ());
 
-  data->library_list = solib_aix_parse_libraries (library_document.get ());
+  data->library_list = solib_aix_parse_libraries (library_document->data ());
   if (data->library_list == NULL && warning_msg != NULL)
     {
       warning (_("%s (missing XML support?)"), warning_msg);
@@ -439,14 +439,14 @@ solib_aix_clear_solib (void)
    The resulting array is computed on the heap and must be
    deallocated after use.  */
 
-static struct section_offsets *
+static gdb::unique_xmalloc_ptr<struct section_offsets>
 solib_aix_get_section_offsets (struct objfile *objfile,
                               lm_info_aix *info)
 {
-  struct section_offsets *offsets;
   bfd *abfd = objfile->obfd;
 
-  offsets = XCNEWVEC (struct section_offsets, objfile->num_sections);
+  gdb::unique_xmalloc_ptr<struct section_offsets> offsets
+    (XCNEWVEC (struct section_offsets, objfile->num_sections));
 
   /* .text */
 
@@ -515,12 +515,10 @@ solib_aix_solib_create_inferior_hook (int from_tty)
 
   if (symfile_objfile != NULL)
     {
-      struct section_offsets *offsets
+      gdb::unique_xmalloc_ptr<struct section_offsets> offsets
        = solib_aix_get_section_offsets (symfile_objfile, exec_info);
-      struct cleanup *cleanup = make_cleanup (xfree, offsets);
 
-      objfile_relocate (symfile_objfile, offsets);
-      do_cleanups (cleanup);
+      objfile_relocate (symfile_objfile, offsets.get ());
     }
 }
 
This page took 0.025099 seconds and 4 git commands to generate.