The 16-bit relocations in powerpc.cc have the line

    val &= ~static_cast<Valtype>(0xffff);

This causes gcc to complain about the fact that the ~ operator causes gcc to
promote to int the result of the Valtype (uint16_t) static_cast, which is then
attempted to be used for the &= assignment:

   ../../src/gold/powerpc.cc:631: warning: overflow in implicit constant 
conversion

This change moves the ~ operation inside the static_cast so the result is 16
bits wide.

B


2008-06-18  Brendan Kehoe  <[EMAIL PROTECTED]>

        * powerpc.cc (Powerpc_relocate_functions::addr16_ha): Move ~ one-
        complement inside static_cast to avoid promotion to int.
        (Powerpc_relocate_functions::rel16_ha): Likewise.

Index: powerpc.cc
===================================================================
RCS file: /cvs/src/src/gold/powerpc.cc,v
retrieving revision 1.3
diff -u -p -r1.3 powerpc.cc
--- powerpc.cc  18 Jun 2008 22:32:37 -0000      1.3
+++ powerpc.cc  19 Jun 2008 22:22:11 -0000
@@ -605,7 +605,7 @@ public:
       reloc += 0x10000;
     reloc >>= 16;
 
-    val &= ~static_cast<Valtype>(0xffff);
+    val &= static_cast<Valtype>(~0xffff);
     reloc &= static_cast<Valtype>(0xffff);
 
     elfcpp::Swap<16, true>::writeval(wv, val | reloc);
@@ -628,7 +628,7 @@ public:
       reloc += 0x10000;
     reloc >>= 16;
 
-    val &= ~static_cast<Valtype>(0xffff);
+    val &= static_cast<Valtype>(~0xffff);
     reloc &= static_cast<Valtype>(0xffff);
 
     elfcpp::Swap<16, true>::writeval(wv, val | reloc);

-- 
           Summary: adjustment to hush warnings about overflow in implicit
                    conversion
           Product: binutils
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P3
         Component: gold
        AssignedTo: ian at airs dot com
        ReportedBy: brendan+sourceware at zen dot org
                CC: bug-binutils at gnu dot org


http://sourceware.org/bugzilla/show_bug.cgi?id=6660

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to