Messages in this thread | | | Subject | Re: scripts/checkpatch: Concatenated strings should use spaces between elements | From | Joe Perches <> | Date | Tue, 17 Oct 2017 16:18:51 -0700 |
| |
On Wed, 2017-10-18 at 00:58 +0200, Heinrich Schuchardt wrote: > On 10/18/2017 12:43 AM, Joe Perches wrote: > > On Tue, 2017-10-17 at 23:17 +0200, Heinrich Schuchardt wrote: > > > This patch creates a warning (CHECK) > > > "Concatenated strings should use spaces between elements" > > > > > > There are no concatenated strings here. > > > > Yes, there are. > > > > > (checkpatch is also used in the U-Boot project where wide strings > > > occur in the EFI implementation.) > > > > > > Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> > > > --- > > > test.c | 7 +++++++ > > > 1 file changed, 7 insertions(+) > > > create mode 100644 test.c > > > > > > diff --git a/test.c b/test.c > > > new file mode 100644 > > > index 0000000000..dfd33cd765 > > > --- /dev/null > > > +++ b/test.c > > > @@ -0,0 +1,6 @@ > > > +#include <foo.h> > > > + > > > +void foo(void) > > > +{ > > > + test(L"\""); > > > > In this case, L must be a constant string and you > > are concatenating L and "\"" > > > > > > See ISO/IEC 9899:1999 > > 6.4.5 String literals > > <cite> > A character string literal is a sequence of zero or more multibyte > characters enclosed in double-quotes, as in "xyz" > A wide string literal is the same, except prefixed by the > letter L. > </cite>
Kernel doesn't support wide strings.
> L"foo" is a literal of type wchar_t * and not two strings. > L is a qualifier and not a constant string. > > Just like ULL in 10ULL. > > Regards > > Heinrich
| |