function.c (lookup_static_chain): Check for a static chain using FUNCTION_NEEDS_STATI...
authorPer Bothner <bothner@gcc.gnu.org>
Tue, 28 Feb 1995 23:06:03 +0000 (15:06 -0800)
committerPer Bothner <bothner@gcc.gnu.org>
Tue, 28 Feb 1995 23:06:03 +0000 (15:06 -0800)
* 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

gcc/function.c

index 4ee042b373b540e61f7a725a9ca77fcb0079d51b..edd2bed6113b53a14ca6e6a8df84253a6937f621 100644 (file)
@@ -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;