diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-18 16:44:54 +0000 |
---|---|---|
committer | Christopher Li <sparse@chrisli.org> | 2009-07-18 05:30:10 +0000 |
commit | 7ffff9cb3d04c99107dee6f4283311a9b132d67b (patch) | |
tree | 41ace6673219954822739ae60632faf97cb66796 | |
parent | 8d86d0e51b64a5292d246e2ff6b18951e120d580 (diff) | |
download | sparse-7ffff9cb3d04c99107dee6f4283311a9b132d67b.tar.gz |
Allow array declarators to have 'restrict' in them
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@linux-foundation.org>
Signed-off-by: Christopher Li <sparse@chrisli.org>
-rw-r--r-- | ident-list.h | 1 | ||||
-rw-r--r-- | parse.c | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/ident-list.h b/ident-list.h index 29ddeca4..0ee81bc0 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 @@ -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; |