Don't use boolean OR in arithmetic expressions

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.
This commit is contained in:
Alan Modra 2016-10-06 08:08:25 +10:30
parent f389f6fef7
commit 616ec3583b
5 changed files with 15 additions and 4 deletions

View 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

View 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);

View 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

View 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));

View 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)