Re: [PATCH 4/4] main: Don't add int to string

Simon Marchi
2017-06-25T10:58:55Z

On 2017-06-21 22:35, Sergio Durigan Junior wrote:
> On Wednesday, June 21 2017, Simon Marchi wrote:
>
>> clang shows this warning:
>>
>> /home/emaisin/src/binutils-gdb/gdb/main.c:227:56: error: adding
>> 'int' to a string does not append to the string
>> [-Werror,-Wstring-plus-int]
>> char *tmp_sys_gdbinit = xstrdup (SYSTEM_GDBINIT +
>> datadir_len);
>>
>> ~~~~~~~~~~~~~~~^~~~~~~~~~~~~
>> /home/emaisin/src/binutils-gdb/gdb/main.c:227:56: note: use array
>> indexing to silence this warning
>> char *tmp_sys_gdbinit = xstrdup (SYSTEM_GDBINIT +
>> datadir_len);
>> ^
>> & [
>> ]
>>
>> It's quite easy to get rid of it by using &foo[len] instead of foo +
>> len.
>> I think this warning is relevant to keep enabled, because it can be an
>> easy mistake to do.
>>
>> This warning is already discussed here in GCC bugzilla:
>>
>> https://gcc.gnu.org/ml/gcc-patches/2017-06/msg00729.html
>>
>> and a patch series for it was submitted very recently.
>>
>> gdb/ChangeLog:
>>
>> * main.c (get_init_files): Replace "SYSTEM_GDBINIT +
>> datadir_len" with "&SYSTEM_GDBINIT[datadir_len]".
>> ---
>> gdb/main.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/gdb/main.c b/gdb/main.c
>> index df4b111..9813041 100644
>> --- a/gdb/main.c
>> +++ b/gdb/main.c
>> @@ -224,7 +224,7 @@ get_init_files (const char **system_gdbinit,
>> {
>> /* Append the part of SYSTEM_GDBINIT that follows GDB_DATADIR
>> to gdb_datadir. */
>> - char *tmp_sys_gdbinit = xstrdup (SYSTEM_GDBINIT +
>> datadir_len);
>> + char *tmp_sys_gdbinit = xstrdup
>> (&SYSTEM_GDBINIT[datadir_len]);
>> char *p;
>>
>> for (p = tmp_sys_gdbinit; IS_DIR_SEPARATOR (*p); ++p)
>> --
>> 2.7.4
>
> LGTM.
>
> Thanks,

Thanks, pushed.