Mercurial > hg > CbC > old > device
changeset 876:f93bf97bbd1f
fix
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 02 Apr 2014 12:44:48 +0900 |
parents | 34ecf0e6304a |
children | 6955ee41688f |
files | Changes mc-codegen.c |
diffstat | 2 files changed, 24 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/Changes Wed Apr 02 12:00:47 2014 +0900 +++ b/Changes Wed Apr 02 12:44:48 2014 +0900 @@ -9992,9 +9992,27 @@ recursive macro の結果が逆。 - - - - - - +Wed Apr 2 12:12:34 JST 2014 + +LOCAL_STRUCT_INIT_STATIC は、定数の初期化をした構造体を static で用意して、それをlocalにコピーして、 +実行時に変更部分だけ代入するという実装。 + +構造体の初期化は、 + parse_mode = 1 ( inmode ) & local_struct_static +でないと動かなくなっている。 + +expr14 の中で LOCAL_STRUCT_INIT_STATIC すると、再帰的に行われるので、local struct を再利用する必要があるが、 +その時の offset を知りえないという問題がある。 + +decl_data 側で再帰構造定義を処理してやると、それは避けられるらしい。 + +local_struct_static 以外だといろいろ動かなくなっているようだ。 + +でも、局所構造体はゼロ初期化しなければならないので、local_struct_static が正しいだろう。 +ということは、decl_data 側で再帰定義を扱うのが正しいのだろうな。 + +local_struct_offset を大域変数にしてやれば良い。 + + + +