[patch] rl78: GCC false warning workaround

DJ Delorie dj@redhat.com
Wed Apr 10 19:09:00 GMT 2013


This version is OK.  Not the other version.  Note: I consider this a
gcc bug, as the switch statement guarantees the array index is in
range.

> opcodes/
> 2013-04-10  Jan Kratochvil  <jan.kratochvil@redhat.com>
> 
> 	* rl78-dis.c (print_insn_rl78): Use alternative form as a GCC false
> 	warning workaround.
> 
> diff --git a/opcodes/rl78-dis.c b/opcodes/rl78-dis.c
> index 1ceee8d..7d1eab4 100644
> --- a/opcodes/rl78-dis.c
> +++ b/opcodes/rl78-dis.c
> @@ -217,7 +217,7 @@ print_insn_rl78 (bfd_vma addr, disassemble_info * dis)
>  
>  	    case '0':
>  	    case '1':
> -	      oper = opcode.op + *s - '0';
> +	      oper = *s == '0' ? &opcode.op[0] : &opcode.op[1];
>  	    if (do_es)
>  	      {
>  		if (oper->use_es && indirect_type (oper->type))
> 



More information about the Binutils mailing list