X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=walk.c;h=46ff307c0ec0d156ec87768deb7da165a8c0aab7;hb=b9d39f5598cc124bdde5e4658cbc1f034ea85476;hp=00cab1f54b1e9d2260ba58b5b7ca0a4088e0901a;hpb=7f66747c31a3b399017b9e185d451dd7306eb085;p=cparser diff --git a/walk.c b/walk.c index 00cab1f..46ff307 100644 --- a/walk.c +++ b/walk.c @@ -177,10 +177,10 @@ static void walk_expression(expression_t *const expr, return; case EXPR_LITERAL_CASES: + case EXPR_LITERAL_CHARACTER: 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_LABEL_ADDRESS: case EXPR_ERROR: @@ -214,8 +214,8 @@ static void walk_initializer(const initializer_t *initializer, case INITIALIZER_DESIGNATOR: walk_designator(initializer->designator.designator, env); return; + case INITIALIZER_STRING: - case INITIALIZER_WIDE_STRING: return; } } @@ -327,6 +327,11 @@ static void walk_statement(statement_t *const stmt, const walk_env_t *const env) 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; @@ -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; - 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: @@ -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_GOTO: case STATEMENT_LEAVE: return; }