summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw44@gmail.com>2015-12-31 20:48:33 +0800
committerTing-Wei Lan <lantw44@gmail.com>2015-12-31 20:48:51 +0800
commit90ed3cf4fce713e014a60e42c75b25505fc91613 (patch)
tree828c8193c25ae5b2708300e70346c700035541b9
parent42a97c115440aa71d2770d6d4cc3be645d96f4ad (diff)
downloadcompiler2015-90ed3cf4fce713e014a60e42c75b25505fc91613.tar
compiler2015-90ed3cf4fce713e014a60e42c75b25505fc91613.tar.gz
compiler2015-90ed3cf4fce713e014a60e42c75b25505fc91613.tar.bz2
compiler2015-90ed3cf4fce713e014a60e42c75b25505fc91613.tar.lz
compiler2015-90ed3cf4fce713e014a60e42c75b25505fc91613.tar.xz
compiler2015-90ed3cf4fce713e014a60e42c75b25505fc91613.tar.zst
compiler2015-90ed3cf4fce713e014a60e42c75b25505fc91613.zip
Process local variables declared in else blocks
-rw-r--r--src/code-generation.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/code-generation.c b/src/code-generation.c
index 19a1000..1510898 100644
--- a/src/code-generation.c
+++ b/src/code-generation.c
@@ -97,6 +97,10 @@ static void generate_statement(
case CCMMC_KIND_STMT_IF:
generate_statement(stmt->child->right_sibling,
state, current_offset);
+ if (stmt->child->right_sibling->right_sibling->type_node
+ != CCMMC_AST_NODE_NUL)
+ generate_statement(stmt->child->right_sibling->right_sibling,
+ state, current_offset);
break;
case CCMMC_KIND_STMT_FUNCTION_CALL:
break;