simple-object-xcoff.c (simple_object_xcoff_find_sections): Use ulong_type to avoid...
authorEli Zaretskii <eliz@gnu.org>
Sun, 21 Jan 2018 05:01:31 +0000 (05:01 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Sun, 21 Jan 2018 05:01:31 +0000 (05:01 +0000)
* simple-object-xcoff.c (simple_object_xcoff_find_sections): Use
ulong_type to avoid warning about 32-bit shift.

From-SVN: r256925

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

index 2b834372c9a74a3f2fd61bce9f6159a8bce6accf..63558926ef92fe58d7b396a39e38609256f09ff6 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-20  Eli Zaretskii  <eliz@gnu.org>
+
+       * simple-object-xcoff.c (simple_object_xcoff_find_sections): Use
+       ulong_type to avoid warning about 32-bit shift.
+
 2018-01-11  Richard Biener  <rguenther@suse.de>
        Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
index 95887a42ebdc89727572363072f74aa53d754c06..1e3d9e01b042e6c106de0a1ee5a13d7e1e14f426 100644 (file)
@@ -596,15 +596,24 @@ 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
                {