aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPer Bothner <bothner@gcc.gnu.org>1995-02-28 15:06:03 -0800
committerPer Bothner <bothner@gcc.gnu.org>1995-02-28 15:06:03 -0800
commit7ad8c4bf113ee762b5f4696e8622640d3453f2c9 (patch)
tree382aa88e35bf7e0e24823af2c79f971f265b1eab
parent7c38c3ad5e0d6123089abf8249641df57aab5f42 (diff)
downloadgcc-7ad8c4bf113ee762b5f4696e8622640d3453f2c9.zip
gcc-7ad8c4bf113ee762b5f4696e8622640d3453f2c9.tar.gz
gcc-7ad8c4bf113ee762b5f4696e8622640d3453f2c9.tar.bz2
function.c (lookup_static_chain): Check for a static chain using FUNCTION_NEEDS_STATIC_CHAIN.
* function.c (lookup_static_chain): Check for a static chain using FUNCTION_NEEDS_STATIC_CHAIN. (init_function_start): Set current_function_needs_context depending on FUNCTION_NEEDS_STATIC_CHAIN rather than decl_function_context. From-SVN: r9096
-rw-r--r--gcc/function.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 4ee042b..edd2bed 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -4246,12 +4246,18 @@ rtx
lookup_static_chain (decl)
tree decl;
{
- tree context = decl_function_context (decl);
- tree link;
+ tree context, link;
- if (context == 0)
+ if (TREE_CODE (decl) == FUNCTION_DECL
+ ? ! FUNCTION_NEEDS_STATIC_CHAIN (decl)
+ : ! FUNCTION_NEEDS_STATIC_CHAIN (current_function_decl))
return 0;
+ context = decl_function_context (decl);
+
+ if (context == 0)
+ return 0;
+
/* We treat inline_function_decl as an alias for the current function
because that is the inline function whose vars, types, etc.
are being merged into the current function.
@@ -4707,7 +4713,7 @@ init_function_start (subr, filename, line)
/* Nonzero if this is a nested function that uses a static chain. */
current_function_needs_context
- = (decl_function_context (current_function_decl) != 0);
+ = FUNCTION_NEEDS_STATIC_CHAIN (current_function_decl);
/* Set if a call to setjmp is seen. */
current_function_calls_setjmp = 0;