On Tue, Jan 08, 2019 at 09:50:39AM -0800, Nick Desaulniers wrote: > On Mon, Jan 7, 2019 at 9:07 PM Nathan Chancellor > <natechancel...@gmail.com> wrote: > > > > A recent commit in Clang expanded the -Wstring-plus-int warning, showing > > some odd behavior in this file. > > > > drivers/isdn/hardware/avm/b1.c:426:30: warning: adding 'int' to a string > > does not append to the string [-Wstring-plus-int] > > cinfo->version[j] = "\0\0" + 1; > > ~~~~~~~^~~ > > drivers/isdn/hardware/avm/b1.c:426:30: note: use array indexing to silence > > this warning > > cinfo->version[j] = "\0\0" + 1; > > ^ > > & [ ] > > 1 warning generated. > > > > This is equivalent to just "\0" so fix it to clean up the warning. > > Hard to tell what the intent of this was. I also assume that they > meant to set all version strings to the empty string. I think just `= > ""` would be better, as otherwise that creates a new data section > containing two zero bytes vs the empty string which already probably > exists throughout the kernel and can be deduplicated by the linker. > https://godbolt.org/z/qf3Rn8 > Sorry I gave the quick LGTM in > https://github.com/ClangBuiltLinux/linux/issues/309#issuecomment-452106468, > that was my mistake. Assuming there's no other comments (maybe from > the maintainers) on what the intent of this code actually is, would > you mind sending a V2? (Sorry again for the quick LGTM on this > version).
Of course, thank you for the explanation and further exploration. I'll send a v2 later today/tomorrow to give some time for the maintainers to chime in. > > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/309 > > Signed-off-by: Nathan Chancellor <natechancel...@gmail.com> > > --- > > drivers/isdn/hardware/avm/b1.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c > > index 4ac378e48902..7fa8141e2019 100644 > > --- a/drivers/isdn/hardware/avm/b1.c > > +++ b/drivers/isdn/hardware/avm/b1.c > > @@ -423,7 +423,7 @@ void b1_parse_version(avmctrl_info *cinfo) > > int i, j; > > > > for (j = 0; j < AVM_MAXVERSION; j++) > > - cinfo->version[j] = "\0\0" + 1; > > + cinfo->version[j] = "\0"; > > for (i = 0, j = 0; > > j < AVM_MAXVERSION && i < cinfo->versionlen; > > j++, i += cinfo->versionbuf[i] + 1) > > -- > > 2.20.1 > > > > > -- > Thanks, > ~Nick Desaulniers