From: Jim Wilson Date: Thu, 9 Sep 1993 23:20:32 +0000 (-0700) Subject: (make_node): Put PARM_DECLs of nested functions onto X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e97b2a1c481e9b269e2defb75d85aa39b037412d;p=gcc.git (make_node): Put PARM_DECLs of nested functions onto parent's saveable obstack. From-SVN: r5299 --- diff --git a/gcc/tree.c b/gcc/tree.c index 317e8ad0cee..7fd8296f229 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -796,7 +796,22 @@ make_node (code) even though we may make them before the function turns on temporary allocation. */ else if (code == PARM_DECL) - obstack = function_maybepermanent_obstack; + { + tree context = 0; + if (current_function_decl) + context = decl_function_context (current_function_decl); + /* If this is a nested function, then we must allocate the PARM_DECL + on the parent's saveable_obstack, so that they will live to the + end of the parent's closing brace. This is neccesary in case we + try to inline the function into its parent. */ + if (context) + { + struct function *p = find_function_data (context); + obstack = p->function_maybepermanent_obstack; + } + else + obstack = function_maybepermanent_obstack; + } break; case 't': /* a type node */