diff options
author | Linus Torvalds <torvalds@home.transmeta.com> | 2003-03-25 20:09:14 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-07 20:59:47 -0700 |
commit | 6093c190f23c24fbe55eae0fd233d14e6dfd1643 (patch) | |
tree | 5e859ac76e839e9cf2da18ded5fbe58fd68bb25a /test-parsing.c | |
parent | Fix indirect type parsing (functions, arrays, bitfields). Update (diff) | |
download | sparse-6093c190f23c24fbe55eae0fd233d14e6dfd1643.tar.gz sparse-6093c190f23c24fbe55eae0fd233d14e6dfd1643.tar.bz2 sparse-6093c190f23c24fbe55eae0fd233d14e6dfd1643.zip |
Add tree evaluation to a few more statement types (iterators,
switch and case-statements).
Handle varying functions.
Diffstat (limited to 'test-parsing.c')
-rw-r--r-- | test-parsing.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test-parsing.c b/test-parsing.c index bc08397..b5ecb50 100644 --- a/test-parsing.c +++ b/test-parsing.c @@ -44,6 +44,22 @@ static void simplify_statement(struct statement *stmt, struct symbol *fn) simplify_statement(stmt->if_true, fn); simplify_statement(stmt->if_false, fn); return; + case STMT_ITERATOR: + evaluate_expression(stmt->iterator_pre_condition); + evaluate_expression(stmt->iterator_post_condition); + simplify_statement(stmt->iterator_pre_statement, fn); + simplify_statement(stmt->iterator_statement, fn); + simplify_statement(stmt->iterator_post_statement, fn); + return; + case STMT_SWITCH: + evaluate_expression(stmt->switch_expression); + simplify_statement(stmt->switch_statement, fn); + return; + case STMT_CASE: + evaluate_expression(stmt->case_expression); + evaluate_expression(stmt->case_to); + simplify_statement(stmt->case_statement, fn); + return; } } |