[PATCH] Parse and track multiple contexts by expression
commit37475a6c1c3e66219e68d912d5eb833f4098fd72
authorJosh Triplett <josht@us.ibm.com>
Wed, 30 Aug 2006 17:14:53 +0000 (30 10:14 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 30 Aug 2006 23:07:55 +0000 (30 16:07 -0700)
treed4b87d24a087663e44c900929f3f7cd5b8cc9914
parentc974e38bfdf1484f39b473577f1dd047706384e4
[PATCH] Parse and track multiple contexts by expression

sparse currently only tracks one global context for __context__ and
__attribute__((context)).

This adds support for parsing an additional argument to each of these
which gives a context expression.  For __attribute__((context)), store
each context attribute as a separate context structure containing the
expression, the entry context, and the exit context, and keep a list of
these structures in the ctype.  For __context__, store the context
expression in the context instruction.  Modify the various frontends to
adapt to this change, without changing functionality.

This change should not affect parsing of programs which worked with
previous versions of sparse, unless those programs use comma expressions
as arguments to __context__ or __attribute__((context)), which seems
highly dubious and unlikely.  sparse with -Wcontext generates identical
output with or without this change on Linux 2.6.18-rc4.

Signed-off-by: Josh Triplett <josh@freedesktop.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
allocate.c
allocate.h
check.c
linearize.c
linearize.h
parse.c
parse.h
show-parse.c
symbol.c
symbol.h