X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=walk.c;h=62a46a2ecd27f42d732c1bd0770c4b095d9751c5;hb=6f8db408325831c25558eaa99b1d291562f7f65a;hp=d1cd35d2ba49affeb9fb3f8ebd21813d3f20df28;hpb=25e87415eecbd8d7cd3811d745568e70cec17bf1;p=cparser diff --git a/walk.c b/walk.c index d1cd35d..62a46a2 100644 --- a/walk.c +++ b/walk.c @@ -96,16 +96,16 @@ static void walk_expression(expression_t *const expr, walk_statement(expr->statement.statement, env); return; - EXPR_BINARY_CASES + case EXPR_BINARY_CASES: walk_expression(expr->binary.left, env); walk_expression(expr->binary.right, env); return; - EXPR_UNARY_CASES_OPTIONAL + case EXPR_UNARY_CASES_OPTIONAL: if (expr->unary.value == NULL) return; /* FALLTHROUGH */ - EXPR_UNARY_CASES_MANDATORY + case EXPR_UNARY_CASES_MANDATORY: walk_expression(expr->unary.value, env); return; @@ -176,7 +176,7 @@ static void walk_expression(expression_t *const expr, walk_designator(expr->offsetofe.designator, env); return; - EXPR_LITERAL_CASES + case EXPR_LITERAL_CASES: case EXPR_REFERENCE: case EXPR_REFERENCE_ENUM_VALUE: case EXPR_STRING_LITERAL: @@ -185,8 +185,6 @@ static void walk_expression(expression_t *const expr, case EXPR_LABEL_ADDRESS: case EXPR_ERROR: return; - case EXPR_INVALID: - break; } panic("invalid expr kind"); } @@ -270,8 +268,6 @@ static void walk_entity(entity_t *entity, const walk_env_t *const env) case ENTITY_LABEL: case ENTITY_LOCAL_LABEL: return; - case ENTITY_INVALID: - break; } panic("invalid entity found"); } @@ -363,12 +359,16 @@ 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_INVALID: + case STATEMENT_COMPUTED_GOTO: + walk_expression(stmt->computed_goto.expression, env); + return; + + case STATEMENT_ERROR: case STATEMENT_EMPTY: case STATEMENT_CONTINUE: case STATEMENT_BREAK: - case STATEMENT_GOTO: case STATEMENT_ASM: + case STATEMENT_GOTO: case STATEMENT_LEAVE: return; }