diff options
| author | Linus Torvalds <torvalds@penguin.transmeta.com> | 2003-03-25 16:32:24 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-07 20:59:46 -0700 |
| commit | 8bb77b3c4c9829d2c195eed52889ec9bd022e8ef (patch) | |
| tree | 251d86f1c34362d4178ab24dd0aa4e2be8538b2b /expression.c | |
| parent | ea3907e1228b5ec9ce7e62b0861b6d4d7fb43266 (diff) | |
| download | sparse-dev-8bb77b3c4c9829d2c195eed52889ec9bd022e8ef.tar.gz | |
Fix typename parsing (incorrect ctype usage), and correct
handling of 'long' and 'long long' types. Fix cast parsing
and evaluate casts.
Diffstat (limited to 'expression.c')
| -rw-r--r-- | expression.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/expression.c b/expression.c index f4e88a48..0ca6c19e 100644 --- a/expression.c +++ b/expression.c @@ -199,8 +199,10 @@ static struct token *cast_expression(struct token *token, struct expression **tr struct token *next = token->next; if (lookup_type(next)) { struct expression *cast = alloc_expression(next, EXPR_CAST); + struct symbol *sym; - token = typename(next, &cast->cast_type); + token = typename(next, &sym); + cast->cast_type = sym->ctype.base_type; token = expect(token, ')', "at end of cast operator"); if (match_op(token, '{')) return initializer(token, &cast->cast_type->ctype); |
