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

Simon Marchi simon.marchi@polymtl.ca
Tue Jun 13 17:07:00 GMT 2017


On 2017-06-13 16:38, Eli Zaretskii wrote:
> Let's not forget that code submitted by someone who is willing to do
> the work stays in GDB even when that someone is no longer willing to
> support that compiler.  So there are additional factors to consider
> when making this decision.

Indeed.  As Pedro said, we shouldn't do the same kind of efforts for 
$OBSCURE_COMPILER than to support a widely used one (like Clang).

> 
>> /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)
>>                                ^
> 
> Why is incrementing a loop variable in the body an error?  It's
> perfectly valid code.

It's an error only because we use -Werror for development, otherwise it 
would be a warning.  Warnings are meant to point out valid code that may 
not be very good, or a common mistake, or a probable source of bugs.

>> I think
>> that eliminating the error like this is better than adding 
>> -Wno-for-loop-analysis, because
>> if I wrote code like this and it was actually a mistake, I would like 
>> the compiler to tell
>> me.
> 
> Does clang have the equivalent of "#pragma push"?  If it does, we
> could disable this warning only for clang and only for that code
> snippet.

That's indeed a solution, but I'd keep that for the cases where we can't 
find an elegant solution that pleases both GCC and Clang.




More information about the Gdb-patches mailing list