OSDN Git Service

* tree.c (save_tree_status): Don't treat functions with no context
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Mar 1999 07:42:49 +0000 (07:42 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Mar 1999 07:42:49 +0000 (07:42 +0000)
as nested.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25534 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree.c

index 57b03e4..6eb054b 100644 (file)
@@ -1,3 +1,8 @@
+Tue Mar  2 07:44:56 1999  Mark Mitchell  <mark@markmitchell.com>
+
+       * tree.c (save_tree_status): Don't treat functions with no context
+       as nested.
+
 Tue Mar  2 09:37:05 1999  Robert Lipe  <robertlipe@usa.net>
 
        * Makefile.in (MAKEINFO): Use makeinfo built from sibling
index 80b6795..1114ec3 100644 (file)
@@ -320,8 +320,11 @@ gcc_obstack_init (obstack)
                  (void (*) ()) OBSTACK_CHUNK_FREE);
 }
 
-/* Save all variables describing the current status into the structure *P.
-   This is used before starting a nested function.
+/* Save all variables describing the current status into the structure
+   *P.  This function is called whenever we start compiling one
+   function in the midst of compiling another.  For example, when
+   compiling a nested function, or, in C++, a template instantiation
+   that is required by the function we are currently compiling.
 
    CONTEXT is the decl_function_context for the function we're about to
    compile; if it isn't current_function_decl, we have to play some games.  */
@@ -345,7 +348,7 @@ save_tree_status (p, context)
   p->rtl_obstack = rtl_obstack;
   p->inline_obstacks = inline_obstacks;
 
-  if (context == current_function_decl)
+  if (current_function_decl && context == current_function_decl)
     /* Objects that need to be saved in this function can be in the nonsaved
        obstack of the enclosing function since they can't possibly be needed
        once it has returned.  */