sh: avoid warnings about too-long initializer strings
Mark `optletter` and `t_op::op_text` as `__non_string`, to avoid
warnings from clang 21 similar to:
bin/sh/options.h:77:36: error: initializer-string for character array is too long, array size is 19 but initializer has size 20 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
77 | const char optletter[NSHORTOPTS] = "efIimnsxvVECabupTPh";
| ^~~~~~~~~~~~~~~~~~~~~
bin/test/test.c:153:3: error: initializer-string for character array is too long, array size is 2 but initializer has size 3 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
153 | {"==", STREQ},
| ^~~~
MFC after: 3 days
Reviewed by: jilles
Differential Revision: https://reviews.freebsd.org/D54362
This commit is contained in:
+1
-1
@@ -74,7 +74,7 @@ extern char optval[NOPTS];
|
||||
extern const char optletter[NSHORTOPTS];
|
||||
#ifdef DEFINE_OPTIONS
|
||||
char optval[NOPTS];
|
||||
const char optletter[NSHORTOPTS] = "efIimnsxvVECabupTPh";
|
||||
const char optletter[NSHORTOPTS] __nonstring = "efIimnsxvVECabupTPh";
|
||||
static const unsigned char optname[] =
|
||||
"\007errexit"
|
||||
"\006noglob"
|
||||
|
||||
+1
-1
@@ -116,7 +116,7 @@ enum token {
|
||||
#define TOKEN_TYPE(token) ((token) & 0xff00)
|
||||
|
||||
static const struct t_op {
|
||||
char op_text[2];
|
||||
char op_text[2] __nonstring;
|
||||
short op_num;
|
||||
} ops1[] = {
|
||||
{"=", STREQ},
|
||||
|
||||
Reference in New Issue
Block a user