diff mc-inline.c @ 511:14c7faf78910

inline continue (first binary run)
author kono
date Sun, 25 Dec 2005 17:40:11 +0900
parents 2bd6ff6ee9a8
children 53ec17a8af7d
line wrap: on
line diff
--- a/mc-inline.c	Sun Dec 25 16:29:40 2005 +0900
+++ b/mc-inline.c	Sun Dec 25 17:40:11 2005 +0900
@@ -969,9 +969,11 @@
     int e1 = attr_value(n,INLINE);
     int parse = car(e1);      // inline parse tree
     int arg_disp = cadr(e1);  // size of local variable
-    int e3,t,e4,dots;
+    int e2,e3,t,e4,dots;
     int ret_type = function_type(cadddr(e),&dots);
 
+    enter_scope(); // to make label scope happy
+
     fnptr = n;   // st_return see this
     pvartable = p_vartable(e,arg_disp,caddr(e1));
     /* inline function arguments */
@@ -989,13 +991,14 @@
 	narg ++;
     }
     caddr(e) = reverse0(e1);  // make it normal
-    e = pexpr(parse);
+    e2 = pexpr(parse);
     pdisp = sdisp;
     pvartable = svartable;
     // how to handle return value?
-    g_expr_u(e);
+    g_expr_u(e2);
     fnptr = sfnptr;
 
+    leave_scope();
     return ret_type;
 }