This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb/gdb-8.1-branch] Avoid compilation warning in libiberty/simple-object-xcoff.c


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3d721be4ac8c6c8452c25aa382d09bd487dcded3

commit 3d721be4ac8c6c8452c25aa382d09bd487dcded3
Author: Eli Zaretskii <eliz@gnu.org>
Date:   Sat Jan 27 18:25:06 2018 +0200

    Avoid compilation warning in libiberty/simple-object-xcoff.c
    
    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)

Diff:
---
 libiberty/ChangeLog             |  6 ++++++
 libiberty/simple-object-xcoff.c | 16 +++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 7a49a6a..b7521e3 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -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
diff --git a/libiberty/simple-object-xcoff.c b/libiberty/simple-object-xcoff.c
index 9a8f581..9c83db3 100644
--- a/libiberty/simple-object-xcoff.c
+++ b/libiberty/simple-object-xcoff.c
@@ -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
 		{


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]