projects
/
cparser
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move adding/removing ';' as anchor from intern_parse_statement() to parse_compound_st...
[cparser]
/
walk.c
diff --git
a/walk.c
b/walk.c
index
00cab1f
..
1b88790
100644
(file)
--- a/
walk.c
+++ b/
walk.c
@@
-178,7
+178,7
@@
static void walk_expression(expression_t *const expr,
case EXPR_LITERAL_CASES:
case EXPR_REFERENCE:
case EXPR_LITERAL_CASES:
case EXPR_REFERENCE:
- case EXPR_
REFERENCE_ENUM_VALUE
:
+ case EXPR_
ENUM_CONSTANT
:
case EXPR_STRING_LITERAL:
case EXPR_WIDE_STRING_LITERAL:
case EXPR_FUNCNAME:
case EXPR_STRING_LITERAL:
case EXPR_WIDE_STRING_LITERAL:
case EXPR_FUNCNAME:
@@
-327,6
+327,11
@@
static void walk_statement(statement_t *const stmt, const walk_env_t *const env)
return;
case STATEMENT_CASE_LABEL:
return;
case STATEMENT_CASE_LABEL:
+ if (stmt->case_label.expression) {
+ walk_expression(stmt->case_label.expression, env);
+ if (stmt->case_label.end_range)
+ walk_expression(stmt->case_label.end_range, env);
+ }
walk_statement(stmt->case_label.statement, env);
return;
walk_statement(stmt->case_label.statement, env);
return;
@@
-359,9
+364,8
@@
static void walk_statement(statement_t *const stmt, const walk_env_t *const env)
walk_statement(stmt->ms_try.final_statement, env);
return;
walk_statement(stmt->ms_try.final_statement, env);
return;
- case STATEMENT_GOTO:
- if (stmt->gotos.expression)
- walk_expression(stmt->gotos.expression, env);
+ case STATEMENT_COMPUTED_GOTO:
+ walk_expression(stmt->computed_goto.expression, env);
return;
case STATEMENT_ERROR:
return;
case STATEMENT_ERROR:
@@
-369,6
+373,7
@@
static void walk_statement(statement_t *const stmt, const walk_env_t *const env)
case STATEMENT_CONTINUE:
case STATEMENT_BREAK:
case STATEMENT_ASM:
case STATEMENT_CONTINUE:
case STATEMENT_BREAK:
case STATEMENT_ASM:
+ case STATEMENT_GOTO:
case STATEMENT_LEAVE:
return;
}
case STATEMENT_LEAVE:
return;
}