* aoutx.h (some_aout_object_p): Clean up tdata properly on error.
[deliverable/binutils-gdb.git] / bfd / versados.c
index 9a7bcc71a40b0ba32f279e007aa9ff2f0154c073..684c3dbd2e48aad0aa86c5311e5390d28fcfcf2c 100644 (file)
@@ -612,6 +612,7 @@ versados_object_p (abfd)
 {
   struct ext_vheader ext;
   unsigned char len;
+  tdata_type *tdata_save;
 
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
     return NULL;
@@ -642,9 +643,12 @@ versados_object_p (abfd)
 
   /* OK, looks like a record, build the tdata and read in.  */
 
-  if (!versados_mkobject (abfd)
-      || !versados_scan (abfd))
-    return NULL;
+  tdata_save = abfd->tdata.versados_data;
+  if (!versados_mkobject (abfd) || !versados_scan (abfd))
+    {
+      abfd->tdata.versados_data = tdata_save;
+      return NULL;
+    }
 
   return abfd->xvec;
 }
@@ -867,9 +871,11 @@ versados_canonicalize_reloc (abfd, section, relptr, symbols)
 #define versados_bfd_relax_section bfd_generic_relax_section
 #define versados_bfd_gc_sections bfd_generic_gc_sections
 #define versados_bfd_merge_sections bfd_generic_merge_sections
+#define versados_bfd_discard_group bfd_generic_discard_group
 #define versados_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define versados_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
 #define versados_bfd_link_add_symbols _bfd_generic_link_add_symbols
+#define versados_bfd_link_just_syms _bfd_generic_link_just_syms
 #define versados_bfd_final_link _bfd_generic_final_link
 #define versados_bfd_link_split_section _bfd_generic_link_split_section
 
This page took 0.026139 seconds and 4 git commands to generate.