diff options
author | Linus Torvalds <torvalds@penguin.transmeta.com> | 2003-05-23 17:41:39 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-07 21:00:45 -0700 |
commit | a10932174ca47672bc8f62a5b98fbcfb34ee534b (patch) | |
tree | 7365f1793fd1f1f23db7de1704aeb0dbce372da1 /expression.h | |
parent | Fix include path ordering - check for local paths when given (diff) | |
download | sparse-a10932174ca47672bc8f62a5b98fbcfb34ee534b.tar.gz sparse-a10932174ca47672bc8f62a5b98fbcfb34ee534b.tar.bz2 sparse-a10932174ca47672bc8f62a5b98fbcfb34ee534b.zip |
Parse and evaluate gcc computed goto extensions: label addressing
(&&label) and computed goto (goto *expr).
Add label ctype for __label__ identifier. This is still quite broken
(it should create a block-symbol in the NS_LABEL namespace, right now
it creates a regular symbol).
Diffstat (limited to 'expression.h')
-rw-r--r-- | expression.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/expression.h b/expression.h index 529578a..27b85c0 100644 --- a/expression.h +++ b/expression.h @@ -30,6 +30,7 @@ enum expression_type { EXPR_COMMA, EXPR_COMPARE, EXPR_BITFIELD, + EXPR_LABEL, EXPR_INITIALIZER, // initializer list EXPR_IDENTIFIER, // identifier in initializer EXPR_INDEX, // index in initializer @@ -88,6 +89,10 @@ struct expression { unsigned char bitpos, nrbits; struct expression *address; }; + // EXPR_LABEL + struct label_expr { + struct symbol *label_symbol; + }; // EXPR_INITIALIZER struct expression_list *expr_list; // EXPR_IDENTIFIER |