projects
/
cparser
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Correct the ir_relation used for implicit comparisons with 0.
[cparser]
/
walk.c
diff --git
a/walk.c
b/walk.c
index
d1cd35d
..
62a46a2
100644
(file)
--- 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;
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;
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 */
if (expr->unary.value == NULL)
return;
/* FALLTHROUGH */
- EXPR_UNARY_CASES_MANDATORY
+ case EXPR_UNARY_CASES_MANDATORY:
walk_expression(expr->unary.value, env);
return;
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;
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:
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_LABEL_ADDRESS:
case EXPR_ERROR:
return;
- case EXPR_INVALID:
- break;
}
panic("invalid expr kind");
}
}
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_LABEL:
case ENTITY_LOCAL_LABEL:
return;
- case ENTITY_INVALID:
- break;
}
panic("invalid entity found");
}
}
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;
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_EMPTY:
case STATEMENT_CONTINUE:
case STATEMENT_BREAK:
- case STATEMENT_GOTO:
case STATEMENT_ASM:
case STATEMENT_ASM:
+ case STATEMENT_GOTO:
case STATEMENT_LEAVE:
return;
}
case STATEMENT_LEAVE:
return;
}