Don't use boolean OR in arithmetic expressions
authorAlan Modra <amodra@gmail.com>
Wed, 5 Oct 2016 21:38:25 +0000 (08:08 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 5 Oct 2016 23:06:33 +0000 (09:36 +1030)
bfd/
* elf32-epiphany.c (epiphany_final_link_relocate): Use bitwise
OR in arithmetic expression, not boolean OR.
opcodes/
* cr16-dis.c (print_insn_cr16): Don't use boolean OR in arithmetic.
* crx-dis.c (print_insn_crx): Likewise.

bfd/ChangeLog
bfd/elf32-epiphany.c
opcodes/ChangeLog
opcodes/cr16-dis.c
opcodes/crx-dis.c

index e54585a..7ba9597 100644 (file)
@@ -1,3 +1,8 @@
+2016-10-06  Alan Modra  <amodra@gmail.com>
+
+       * elf32-epiphany.c (epiphany_final_link_relocate): Use bitwise
+       OR in arithmetic expression, not boolean OR.
+
 2016-09-30  Alan Modra  <amodra@gmail.com>
 
        * Makefile.am (BFD_H_FILES): Add linker.c and simple.c.  Sort
index 420dc8b..6b798b1 100644 (file)
@@ -420,9 +420,10 @@ epiphany_final_link_relocate (reloc_howto_type *  howto,
       relocation += rel->r_addend;
       if ((unsigned int) relocation > 0x7ff)
        return bfd_reloc_outofrange;
+      /* Fall through.  */
     disp11:
-      relocation = ((relocation & 7) << 5)
-       || ((relocation & 0x7f8 )  << 13);
+      relocation = (((relocation & 7) << 5)
+                   | ((relocation & 0x7f8 ) << 13));
       return _bfd_relocate_contents (howto, input_bfd, relocation,
                                     contents + rel->r_offset);
 
index 20ebe69..83f435c 100644 (file)
@@ -1,3 +1,8 @@
+2016-10-06  Alan Modra  <amodra@gmail.com>
+
+       * cr16-dis.c (print_insn_cr16): Don't use boolean OR in arithmetic.
+       * crx-dis.c (print_insn_crx): Likewise.
+
 2016-09-30  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR binutils/20657
index 3c901f9..1d7054a 100644 (file)
@@ -815,7 +815,7 @@ print_insn_cr16 (bfd_vma memaddr, struct disassemble_info *info)
   /* Find a matching opcode in table.  */
   is_decoded = cr16_match_opcode ();
   /* If found, print the instruction's mnemonic and arguments.  */
-  if (is_decoded > 0 && (cr16_words[0] << 16 || cr16_words[1]) != 0)
+  if (is_decoded > 0 && (cr16_words[0] != 0 || cr16_words[1] != 0))
     {
       if (strneq (instruction->mnemonic, "cinv", 4))
         info->fprintf_func (info->stream,"%s", getcinvstring (instruction->mnemonic));
index 2da70ed..d6b129e 100644 (file)
@@ -727,7 +727,7 @@ print_insn_crx (bfd_vma memaddr, struct disassemble_info *info)
   /* Find a matching opcode in table.  */
   is_decoded = match_opcode ();
   /* If found, print the instruction's mnemonic and arguments.  */
-  if (is_decoded > 0 && (words[0] << 16 || words[1]) != 0)
+  if (is_decoded > 0 && (words[0] != 0 || words[1] != 0))
     {
       info->fprintf_func (info->stream, "%s", instruction->mnemonic);
       if ((currInsn.nargs = get_number_of_operands ()) != 0)