aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/show-parse.c
diff options
authorLinus Torvalds <torvalds@penguin.transmeta.com>2003-04-09 13:58:46 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-07 21:00:24 -0700
commitc5dd7c8e714f9264e95dd9e376e4bba4c600c9f2 (patch)
treef99718015f96f16ccde30bc0b6befd8c29252cef /show-parse.c
parentf9aed739613e5ff1646fe97dfbd37a05849461d2 (diff)
downloadsparse-dev-c5dd7c8e714f9264e95dd9e376e4bba4c600c9f2.tar.gz
Turn 'break'/'continue' statements into goto's with
per-iterator anonymous symbols. Make arrays also gracefully degenerate into "void *".
Diffstat (limited to 'show-parse.c')
-rw-r--r--show-parse.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/show-parse.c b/show-parse.c
index 6294ad57..1437f374 100644
--- a/show-parse.c
+++ b/show-parse.c
@@ -387,10 +387,6 @@ int show_statement(struct statement *stmt)
show_statement(stmt->case_statement);
break;
- case STMT_BREAK:
- printf("\tbreak");
- break;
-
case STMT_ITERATOR: {
struct statement *pre_statement = stmt->iterator_pre_statement;
struct expression *pre_condition = stmt->iterator_pre_condition;
@@ -440,10 +436,6 @@ int show_statement(struct statement *stmt)
printf("\tNONE");
break;
- case STMT_CONTINUE:
- printf("\tcontinue");
- break;
-
case STMT_LABEL:
show_symbol(stmt->label_identifier);
printf(":\n");
@@ -617,8 +609,12 @@ static void show_store_gen(int bits, int value, struct expression *expr, int add
static int show_assignment(struct expression *expr)
{
struct expression *target = expr->left;
- int val, addr, bits = expr->ctype->bit_size;
+ int val, addr, bits;
+
+ if (!expr->ctype)
+ return 0;
+ bits = expr->ctype->bit_size;
val = show_expression(expr->right);
addr = show_address_gen(target);
show_store_gen(bits, val, target, addr);