[PATCH 0/5] Remove a few hurdles of compiling with clang

Pedro Alves palves@redhat.com
Tue Jun 13 11:06:00 GMT 2017


On 06/13/2017 11:23 AM, Simon Marchi wrote:

> I have a concrete example that is currently in the pipeline.  I hit this warning/error:
> 
> /home/emaisin/src/binutils-gdb/gdb/nat/x86-dregs.c:209:7: error: variable 'i' is incremented both in the loop header and in the loop body [-Werror,-Wfor-loop-analysis]
>       i++;
>       ^
> /home/emaisin/src/binutils-gdb/gdb/nat/x86-dregs.c:199:32: note: incremented here
>   ALL_DEBUG_ADDRESS_REGISTERS (i)
>                                ^
> 
> which would require changing this code:
> 
>   ALL_DEBUG_ADDRESS_REGISTERS (i)
>     {
>       ...
>       i++;
>     }
> 
> to either the expansion of the macro:
> 
>   for (int i = DR_FIRSTADDR; i <= DR_LASTADDR; i += 2)
>     {
>       ...
>     }

This, IMO.  I think it's just that one place?

> 
> or to a new macro that would take into account the increment:
> 
>   ITER_DEBUG_ADDRESS_REGISTERS (i, i += 2)  // other users would use i++
>     {
>       ...
>     }
> 

That'd obfuscate too much for no real benefit, IMO.

Thanks,
Pedro Alves



More information about the Gdb-patches mailing list