Mercurial > hg > CbC > old > device
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; }