# HG changeset patch # User Shinji KONO # Date 1396517085 -32400 # Node ID 05c2757853b19725bd45bdf3d4c1fd8f74fb7cca # Parent 3976dc54ec3d4f2c7d680f3541c41d1b99e8bcb6 non parse mode fix diff -r 3976dc54ec3d -r 05c2757853b1 mc-codegen.c --- a/mc-codegen.c Thu Apr 03 17:52:05 2014 +0900 +++ b/mc-codegen.c Thu Apr 03 18:24:45 2014 +0900 @@ -2917,6 +2917,7 @@ { int e; NMTBL *n; + inmode = 0; for(e=inline_funcs;e;e=cadr(e)) { n = ncaddr(e); if (is_code(n)||is_function(n)) { diff -r 3976dc54ec3d -r 05c2757853b1 mc-parse.c --- a/mc-parse.c Thu Apr 03 17:52:05 2014 +0900 +++ b/mc-parse.c Thu Apr 03 18:24:45 2014 +0900 @@ -1586,8 +1586,9 @@ // mode=STAT; do it in GDECL mode // expr1 may contain (sturct hoge){...}. it will call local_struct_static. tell him about offset local_struct_offset = offset; + if (mode!=SFDINIT) mode = STAT; int e=expr1(); - // mode = mode_save; + mode = mode_save; int t2 = type; type = stype; if (size(t2)==size(type0)) { diff -r 3976dc54ec3d -r 05c2757853b1 test/tmp7.c --- a/test/tmp7.c Thu Apr 03 17:52:05 2014 +0900 +++ b/test/tmp7.c Thu Apr 03 18:24:45 2014 +0900 @@ -134,6 +134,7 @@ main5(bbb,main5(aaa,aaa1)).b[0]); main6(); + main7(); return 0; }