diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2009-03-09 07:11:18 +0000 |
---|---|---|
committer | Christopher Li <sparse@chrisli.org> | 2009-07-17 23:06:23 +0000 |
commit | d5c9c2431b417837d3e2d41bddcafc79e0361aeb (patch) | |
tree | d8bae87114d8cbaf2f137b7d92ee3eeda21c1db1 | |
parent | 6c5394f09b4f7dbae091b083066a333630d4997d (diff) | |
download | sparse-d5c9c2431b417837d3e2d41bddcafc79e0361aeb.tar.gz |
Fix regression created by commit af30c6df74f01db10fa78ac0cbdb5c3c40b5c73f
const and friends are reserved words, TYVM...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Christopher Li <sparse@chrisli.org>
-rw-r--r-- | parse.c | 2 | ||||
-rw-r--r-- | validation/reserved.c | 40 |
2 files changed, 42 insertions, 0 deletions
@@ -354,6 +354,8 @@ void init_parser(int stream) struct init_keyword *ptr = keyword_table + i; struct symbol *sym = create_symbol(stream, ptr->name, SYM_KEYWORD, ptr->ns); sym->ident->keyword = 1; + if (ptr->ns == NS_TYPEDEF) + sym->ident->reserved = 1; sym->ctype.modifiers = ptr->modifiers; sym->op = ptr->op; } diff --git a/validation/reserved.c b/validation/reserved.c new file mode 100644 index 00000000..caacd21f --- /dev/null +++ b/validation/reserved.c @@ -0,0 +1,40 @@ +static int (struct); +static int (union); +static int (enum); +static int (volatile); +static int (__volatile); +static int (__volatile__); +static int (const); +static int (__const); +static int (__const__); +static int (restrict); +static int (__restrict); +static int (__restrict__); +static int (typedef); +static int (__typeof); +static int (__typeof__); +static int (inline); +static int (__inline); +static int (__inline__); +/* + * check-name: const et.al. are reserved identifiers + * check-error-start: +reserved.c:1:12: error: Trying to use reserved word 'struct' as identifier +reserved.c:2:12: error: Trying to use reserved word 'union' as identifier +reserved.c:3:12: error: Trying to use reserved word 'enum' as identifier +reserved.c:4:12: error: Trying to use reserved word 'volatile' as identifier +reserved.c:5:12: error: Trying to use reserved word '__volatile' as identifier +reserved.c:6:12: error: Trying to use reserved word '__volatile__' as identifier +reserved.c:7:12: error: Trying to use reserved word 'const' as identifier +reserved.c:8:12: error: Trying to use reserved word '__const' as identifier +reserved.c:9:12: error: Trying to use reserved word '__const__' as identifier +reserved.c:10:12: error: Trying to use reserved word 'restrict' as identifier +reserved.c:11:12: error: Trying to use reserved word '__restrict' as identifier +reserved.c:13:12: error: Trying to use reserved word 'typedef' as identifier +reserved.c:14:12: error: Trying to use reserved word '__typeof' as identifier +reserved.c:15:12: error: Trying to use reserved word '__typeof__' as identifier +reserved.c:16:12: error: Trying to use reserved word 'inline' as identifier +reserved.c:17:12: error: Trying to use reserved word '__inline' as identifier +reserved.c:18:12: error: Trying to use reserved word '__inline__' as identifier + * check-error-end: + */ |