changeset 883:05c2757853b1

non parse mode fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 03 Apr 2014 18:24:45 +0900
parents 3976dc54ec3d
children f915d5ba033e
files mc-codegen.c mc-parse.c test/tmp7.c
diffstat 3 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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)) {
--- 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)) {
--- 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;
 }