From 269b75261a0652b4c1d3a495ba0071941e344604 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Wed, 3 Nov 2004 19:55:30 +0000 Subject: [PATCH] re PR middle-end/18231 (Nested inline function not inlined) 2004-11-03 Andrew Pinski PR tree-opt/18231 * tree.c (staticp) : Nested functions are static also. From-SVN: r90033 --- gcc/ChangeLog | 6 ++++++ gcc/tree.c | 9 ++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e8208f5cc6f..5511a4bf95c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-11-03 Andrew Pinski + + PR tree-opt/18231 + * tree.c (staticp) : Nested functions are static + also. + 2004-11-03 Andrew MacLeod PR tree-optimization/18270 diff --git a/gcc/tree.c b/gcc/tree.c index 1af25cbf1a2..3e40c2e7ad0 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -1573,11 +1573,10 @@ staticp (tree arg) switch (TREE_CODE (arg)) { case FUNCTION_DECL: - /* Nested functions aren't static, since taking their address - involves a trampoline. */ - return ((decl_function_context (arg) == 0 || DECL_NO_STATIC_CHAIN (arg)) - && ! DECL_NON_ADDR_CONST_P (arg) - ? arg : NULL); + /* Nested functions are static, even though taking their address will + involve a trampoline as we unnest the nested function and create + the trampoline on the tree level. */ + return arg; case VAR_DECL: return ((TREE_STATIC (arg) || DECL_EXTERNAL (arg))