projects
/
cparser
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update NEWS.
[cparser]
/
walk_statements.c
diff --git
a/walk_statements.c
b/walk_statements.c
index
7247a54
..
8a4cbc1
100644
(file)
--- a/
walk_statements.c
+++ b/
walk_statements.c
@@
-35,7
+35,6
@@
static void walk_expression(expression_t const *const expr,
return;
case EXPR_UNKNOWN:
return;
case EXPR_UNKNOWN:
- case EXPR_INVALID:
panic("unexpected expr kind");
case EXPR_COMPOUND_LITERAL:
panic("unexpected expr kind");
case EXPR_COMPOUND_LITERAL:
@@
-82,6
+81,7
@@
static void walk_expression(expression_t const *const expr,
return;
}
return;
}
+ case EXPR_INVALID:
case EXPR_OFFSETOF:
case EXPR_REFERENCE:
case EXPR_REFERENCE_ENUM_VALUE:
case EXPR_OFFSETOF:
case EXPR_REFERENCE:
case EXPR_REFERENCE_ENUM_VALUE:
@@
-116,11
+116,11
@@
static void walk_initializer(const initializer_t *initializer,
}
static void walk_declarations(const entity_t* entity,
}
static void walk_declarations(const entity_t* entity,
- const entity_t* const
end
,
+ const entity_t* const
last
,
statement_callback const callback,
void *const env)
{
statement_callback const callback,
void *const env)
{
- for (; entity !=
end
; entity = entity->base.next) {
+ for (; entity !=
NULL
; entity = entity->base.next) {
/* we only look at variables */
if (entity->kind != ENTITY_VARIABLE)
continue;
/* we only look at variables */
if (entity->kind != ENTITY_VARIABLE)
continue;
@@
-130,6
+130,9
@@
static void walk_declarations(const entity_t* entity,
if (initializer != NULL) {
walk_initializer(initializer, callback, env);
}
if (initializer != NULL) {
walk_initializer(initializer, callback, env);
}
+
+ if (entity == last)
+ break;
}
}
}
}
@@
-197,8
+200,7
@@
void walk_statements(statement_t *const stmt, statement_callback const callback,
case STATEMENT_DECLARATION:
walk_declarations(stmt->declaration.declarations_begin,
case STATEMENT_DECLARATION:
walk_declarations(stmt->declaration.declarations_begin,
- stmt->declaration.declarations_end->base.next,
- callback, env);
+ stmt->declaration.declarations_end, callback, env);
return;
case STATEMENT_MS_TRY:
return;
case STATEMENT_MS_TRY: