Otherwise sparse is very unhappy about the current glibc header files (aio.h, netdb.h. regex.h and spawn.h at a minimum). It's a hack, and not a proper parsing with saving the information. It just ignores any "restrict" keyword at the start of an abstract array declaration, but it's better than what we have now. Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> --- ident-list.h | 1 + parse.c | 2 ++ 2 files changed, 3 insertions(+), 0 deletions(-) diff --git a/ident-list.h b/ident-list.h index 29ddeca..0ee81bc 100644 --- a/ident-list.h +++ b/ident-list.h @@ -83,6 +83,7 @@ IDENT(stdcall); IDENT(__stdcall__); IDENT(fastcall); IDENT(__fastcall__); IDENT(dllimport); IDENT(__dllimport__); IDENT(dllexport); IDENT(__dllexport__); +IDENT(restrict); IDENT(__restrict); /* Preprocessor idents. Direct use of __IDENT avoids mentioning the keyword * itself by name, preventing these tokens from expanding when compiling diff --git a/parse.c b/parse.c index fbeebb0..df696e5 100644 --- a/parse.c +++ b/parse.c @@ -1431,6 +1431,8 @@ static struct token *abstract_array_declarator(struct token *token, struct symbo { struct expression *expr = NULL; + if (match_idents(token, &restrict_ident, &__restrict_ident, NULL)) + token = token->next; token = parse_expression(token, &expr); sym->array_size = expr; return token; -- 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