From 3a3755494c8fe62e90040532927860055ba74b2e Mon Sep 17 00:00:00 2001 From: j8takagi Date: Thu, 7 Apr 2011 15:24:23 +0900 Subject: [PATCH] =?utf8?q?=E3=82=BD=E3=83=BC=E3=82=B9=E3=81=AE=E6=95=B4?= =?utf8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/casl2.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/casl2.c b/src/casl2.c index 37aee61..cf44e68 100644 --- a/src/casl2.c +++ b/src/casl2.c @@ -65,6 +65,7 @@ void assemble(int filec, char *filev[]) create_cmdtype_code(); /* 命令の名前とタイプがキーのハッシュ表を作成 */ asptr = malloc_chk(sizeof(ASPTR), "asptr"); /* アセンブル時のプロパティ用の領域確保 */ + asptr->ptr = 0; /* アセンブル。ラベル表作成のため、2回行う */ for(pass = FIRST; pass <= SECOND; pass++) { for(i = 0; i < filec; i++) { @@ -74,13 +75,14 @@ void assemble(int filec, char *filev[]) } else if(pass == SECOND) { asptr->ptr = bp[i]; } - if(execmode.trace == true || execmode.dump == true || asmode.src == true || - asmode.label == true || asmode.asdetail == true) + if(execmode.trace == true || execmode.dump == true || + asmode.src == true || asmode.label == true || asmode.asdetail == true) { fprintf(stdout, "\nAssemble %s (%d)\n", filev[i], pass); } + /* ファイルをアセンブル */ if(assemblefile(filev[i], pass) == false) { - goto assemblefin; + goto asfin; } } if(pass == FIRST && asmode.label == true) { @@ -91,7 +93,7 @@ void assemble(int filec, char *filev[]) } } } -assemblefin: +asfin: freelabel(); /* ラベルハッシュ表を解放 */ free_cmdtype_code(); /* 命令の名前とタイプがキーのハッシュ表を解放 */ FREE(asptr); /* アセンブル時のプロパティを解放 */ -- 2.18.0