2010-04-16 Andreas Schwab <schwab@redhat.com>
authorTristan Gingold <gingold@adacore.com>
Fri, 16 Apr 2010 14:38:54 +0000 (14:38 +0000)
committerTristan Gingold <gingold@adacore.com>
Fri, 16 Apr 2010 14:38:54 +0000 (14:38 +0000)
* vms-alpha.c (alpha_vms_link_add_object_symbols): Avoid breaking
strict-aliasing rules.

bfd/ChangeLog
bfd/vms-alpha.c

index 195590d..3d058c5 100644 (file)
@@ -1,8 +1,14 @@
+2010-04-16  Andreas Schwab  <schwab@redhat.com>
+
+       * vms-alpha.c (alpha_vms_link_add_object_symbols): Avoid breaking
+       strict-aliasing rules.
+       
 2010-04-16  Tristan Gingold  <gingold@adacore.com>
 
        * vms-alpha.c (_bfd_vms_slurp_eihd): Fix typo.
        (_bfd_vms_get_object_record): Always assume there is a pad byte
        for alignment.
+
        * vms-lib.c: Add a few comments.
 
 2010-04-15  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
index 65dafa1..3013192 100644 (file)
@@ -7966,6 +7966,7 @@ alpha_vms_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
     {
       struct vms_symbol_entry *e = PRIV (syms)[i];
       struct alpha_vms_link_hash_entry *h;
+      struct bfd_link_hash_entry *h_root;
       asymbol sym;
 
       if (!alpha_vms_convert_symbol (abfd, e, &sym))
@@ -7983,10 +7984,12 @@ alpha_vms_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
       else
         h = NULL;
 
+      h_root = (struct bfd_link_hash_entry *) h;
       if (_bfd_generic_link_add_one_symbol
           (info, abfd, sym.name, sym.flags, sym.section, sym.value,
-           NULL, FALSE, FALSE, (struct bfd_link_hash_entry **)&h) == FALSE)
+           NULL, FALSE, FALSE, &h_root) == FALSE)
         return FALSE;
+      h = (struct alpha_vms_link_hash_entry *) h_root;
 
       if ((e->flags & EGSY__V_DEF)
           && h->sym == NULL