GOLD aarch64 warning fix
authorAlan Modra <amodra@gmail.com>
Tue, 21 Jul 2015 02:40:27 +0000 (12:10 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 22 Jul 2015 00:59:12 +0000 (10:29 +0930)
aarch64.cc:2026:50: error: integer overflow in expression [-Werror=overflow]
       Insntype adr_insn = adrp_insn & ((1 << 31) - 1);

* aarch64.cc (try_fix_erratum_843419_optimized): Warning fix.

gold/ChangeLog
gold/aarch64.cc

index a74d96c..cd52db0 100644 (file)
@@ -1,3 +1,7 @@
+2015-07-22  Alan Modra  <amodra@gmail.com>
+
+       * aarch64.cc (try_fix_erratum_843419_optimized): Warning fix.
+
 2015-07-21  Cary Coutant  <ccoutant@gmail.com>
 
        PR gold/18548
 2015-07-21  Cary Coutant  <ccoutant@gmail.com>
 
        PR gold/18548
index 4153389..9f2ce74 100644 (file)
@@ -2023,7 +2023,7 @@ AArch64_relobj<size, big_endian>::try_fix_erratum_843419_optimized(
   if (-(1 << 20) <= adr_imm && adr_imm < (1 << 20))
     {
       // Convert 'adrp' into 'adr'.
   if (-(1 << 20) <= adr_imm && adr_imm < (1 << 20))
     {
       // Convert 'adrp' into 'adr'.
-      Insntype adr_insn = adrp_insn & ((1 << 31) - 1);
+      Insntype adr_insn = adrp_insn & ((1u << 31) - 1);
       adr_insn = Insn_utilities::
        aarch64_adr_encode_imm(adr_insn, adr_imm);
       elfcpp::Swap<32, big_endian>::writeval(adrp_view, adr_insn);
       adr_insn = Insn_utilities::
        aarch64_adr_encode_imm(adr_insn, adr_imm);
       elfcpp::Swap<32, big_endian>::writeval(adrp_view, adr_insn);