X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=walk.c;h=7183d38bd6bc349a2e0b8dc94a05440ecf5e7d23;hb=451c15e3a53e601d449512e71b1a9ab7960fa9ec;hp=e213f2bf4b95785f54a774d0b1028d9d3bd4a9da;hpb=83388b4286651b2d54a20d1ef1ecf3af3ae6487c;p=cparser diff --git a/walk.c b/walk.c index e213f2b..7183d38 100644 --- a/walk.c +++ b/walk.c @@ -82,8 +82,6 @@ static void walk_type(type_t *const type, const walk_env_t *const env) case TYPE_ENUM: walk_entity((entity_t*)type->enumt.enume, env); return; - case TYPE_INVALID: - break; } panic("invalid type found"); } @@ -185,9 +183,8 @@ static void walk_expression(expression_t *const expr, case EXPR_WIDE_STRING_LITERAL: case EXPR_FUNCNAME: case EXPR_LABEL_ADDRESS: + case EXPR_ERROR: return; - case EXPR_INVALID: - break; } panic("invalid expr kind"); } @@ -196,7 +193,8 @@ static void walk_designator(const designator_t *designator, const walk_env_t *const env) { for ( ; designator != NULL; designator = designator->next) { - walk_expression(designator->array_index, env); + if (designator->array_index != NULL) + walk_expression(designator->array_index, env); } } @@ -237,7 +235,8 @@ static void walk_entity(entity_t *entity, const walk_env_t *const env) return; } case ENTITY_ENUM_VALUE: - walk_expression(entity->enum_value.value, env); + if (entity->enum_value.value != NULL) + walk_expression(entity->enum_value.value, env); return; case ENTITY_TYPEDEF: walk_type(entity->typedefe.type, env); @@ -269,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"); } @@ -362,7 +359,7 @@ 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_ERROR: case STATEMENT_EMPTY: case STATEMENT_CONTINUE: case STATEMENT_BREAK: