Rewrite and fix specifiers handling
commit319206abe1f2b2981f0912336a2859039bea0e2c
authorAl Viro <viro@ftp.linux.org.uk>
Mon, 9 Mar 2009 07:12:18 +0000 (9 07:12 +0000)
committerChristopher Li <sparse@chrisli.org>
Fri, 17 Jul 2009 23:06:23 +0000 (17 23:06 +0000)
tree5e056496be0660cd3ac84a9833ef02e9ec1e77df
parent9abb0964fc1963b6ab3d7580c43078648519368f
Rewrite and fix specifiers handling

Make sure that we accept the right set; kill ad-hackery around checks
for banned combinations.  Instead of that we keep a bitmap describing
what we'd already seen (with several extra bits for 'long long' and
for keeping track of can't-combine-with-anything stuff), check and
update it using the values in ..._op and keep track of size modifiers
more or less explicitly.

Testcases added.  A _lot_ of that used to be done wrong.

Note that __attribute__((mode(...))) got more broken by this one;
the next several changesets will take care of that.

One more thing: we are -><- close to getting rid of MOD_SPECIFIER bits
for good.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Christopher Li <sparse@chrisli.org>
ident-list.h
parse.c
parse.h
symbol.h
validation/specifiers1.c [new file with mode: 0644]
validation/specifiers2.c [new file with mode: 0644]