Christopher Li wrote: > On 05/16/2013 12:44 PM, Ramsay Jones wrote: > >> diff --git a/validation/init-char-array1.c b/validation/init-char-array1.c >> new file mode 100644 >> index 0000000..7427702 >> --- /dev/null >> +++ b/validation/init-char-array1.c >> @@ -0,0 +1,25 @@ >> +/* >> + * for array of char, ("...") as the initializer is an gcc language >> + * extension. check that a parenthesized string initializer is handled >> + * correctly and that -Wparen-string warns about it's use. >> + */ >> +static const char u[] = ("hello"); >> +static const char v[] = {"hello"}; >> +static const char w[] = "hello"; >> +static const char x[5] = "hello"; > > That seems not complete. I haven't found the official gcc rules > about parenthesized string. I just try the following forms and > gcc takes it. > > char x1[] = { ("hello") }; > char x2[] = { (("hello")) }; > > I guess the rules is that parenthesized string can appear in > any place where string was allowed. Until i18n work started on git, I didn't know this was a gcc extension at all! ;-) I looked at the gcc documentation available to me at the time, and could not find it mentioned at all, let alone as a gcc language extension. However, if it wasn't for the -Wparen-string sparse warning, I wouldn't have suspected that sparse was supposed to support it. Also, I was slightly surprised that MSVC supported this syntax. So, I looked at fixing sparse and came up with my patch. I then found that tcc didn't support this syntax, which is not standard C after all, so I submitted a patch to fix the git gettext 'N_' macro which was the cause of the problem. ATB, Ramsay Jones -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html