]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Avoid compilation warning in libiberty/simple-object-xcoff.c
authorEli Zaretskii <eliz@gnu.org>
Sat, 27 Jan 2018 16:25:06 +0000 (18:25 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 27 Jan 2018 16:39:01 +0000 (18:39 +0200)
gdb/ChangeLog:
2018-01-27  Eli Zaretskii  <eliz@gnu.org>

* simple-object-xcoff.c (simple_object_xcoff_find_sections): Avoid
compilation warning in 32-bit builds not supported by
AC_SYS_LARGEFILE.

(cherry picked from commit de54ee813f35cdeee51729c6d50b82935dc88634)

libiberty/ChangeLog
libiberty/simple-object-xcoff.c

index 7a49a6a1397462741682d94fbc2bb38cb1c2c241..b7521e367aae5fddfcd5daadf999010edd3de35c 100644 (file)
@@ -1,3 +1,9 @@
+2018-01-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * simple-object-xcoff.c (simple_object_xcoff_find_sections): Avoid
+       compilation warning in 32-bit builds not supported by
+       AC_SYS_LARGEFILE.
+
 2017-09-15  Nathan Sidwell  <nathan@acm.org>
 
        PR demangler/82195
index 9a8f581563f0e9c83828c3ec1742e4773c37a2a0..9c83db36e2ff6ed9eff8a1e87e37f5230d15f627 100644 (file)
@@ -596,15 +596,21 @@ simple_object_xcoff_find_sections (simple_object_read *sobj,
              aux = (unsigned char *) auxent;
              if (u64)
                {
+                 /* Use an intermediate 64-bit type to avoid
+                    compilation warning about 32-bit shift below on
+                    hosts with 32-bit off_t which aren't supported by
+                    AC_SYS_LARGEFILE.  */
+                 ulong_type x_scnlen64;
+
                  if ((auxent->u.xcoff64.x_csect.x_smtyp & 0x7) != XTY_SD
                      || auxent->u.xcoff64.x_csect.x_smclas != XMC_XO)
                    continue;
 
-                 x_scnlen = fetch_32 (aux + offsetof (union external_auxent,
-                                                      u.xcoff64.x_csect.x_scnlen_hi));
-                 x_scnlen = x_scnlen << 32
-                          | fetch_32 (aux + offsetof (union external_auxent,
-                                                      u.xcoff64.x_csect.x_scnlen_lo));
+                 x_scnlen64 = fetch_32 (aux + offsetof (union external_auxent,
+                                                        u.xcoff64.x_csect.x_scnlen_hi));
+                 x_scnlen = x_scnlen64 << 32
+                            | fetch_32 (aux + offsetof (union external_auxent,
+                                                        u.xcoff64.x_csect.x_scnlen_lo));
                }
              else
                {