From e97b2a1c481e9b269e2defb75d85aa39b037412d Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Thu, 9 Sep 1993 16:20:32 -0700 Subject: [PATCH] (make_node): Put PARM_DECLs of nested functions onto parent's saveable obstack. From-SVN: r5299 --- gcc/tree.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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 */ -- 2.30.2