OSDN Git Service

* c-lang.c (finish_file): Backout 2001-11-16
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Nov 2001 11:10:16 +0000 (11:10 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Nov 2001 11:10:16 +0000 (11:10 +0000)
changes, instead set DECL_DEFER_OUTPUT for static inline functions
before calling c_expand_deferred_function.

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

gcc/ChangeLog
gcc/c-lang.c

index ecf3e82..9aef7fa 100644 (file)
@@ -1,5 +1,11 @@
 2001-11-20  Jakub Jelinek  <jakub@redhat.com>
 
+       * c-lang.c (finish_file): Backout 2001-11-16
+       changes, instead set DECL_DEFER_OUTPUT for static inline functions
+       before calling c_expand_deferred_function.
+
+2001-11-20  Jakub Jelinek  <jakub@redhat.com>
+
        * unwind-dw2-fde.c (__register_frame_info_bases, __register_frame):
        Don't register empty .eh_frame sections.
        (__deregister_frame_info_bases, __deregister_frame): Don't
index 54f86df..9f0fb28 100644 (file)
@@ -271,38 +271,20 @@ void
 finish_file ()
 {
   unsigned int i;
-  bool reconsider;
 
   for (i = 0; i < VARRAY_ACTIVE_SIZE (deferred_fns); i++)
     {
       tree decl = VARRAY_TREE (deferred_fns, i);
 
-      if (! TREE_ASM_WRITTEN (decl) && TREE_PUBLIC (decl))
+      if (! TREE_ASM_WRITTEN (decl))
        {
+         /* For static inline functions, delay the decision whether to
+            emit them or not until wrapup_global_declarations.  */
+         if (! TREE_PUBLIC (decl))
+           DECL_DEFER_OUTPUT (decl) = 1;
          c_expand_deferred_function (decl);
-         VARRAY_TREE (deferred_fns, i) = NULL;
        }
     }
-
-  do
-    {
-      reconsider = false;
-      for (i = 0; i < VARRAY_ACTIVE_SIZE (deferred_fns); i++)
-       {
-         tree decl = VARRAY_TREE (deferred_fns, i);
-
-         if (decl
-             && ! TREE_ASM_WRITTEN (decl)
-             && (flag_keep_inline_functions
-                 || TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))))
-           {
-             c_expand_deferred_function (decl);
-             VARRAY_TREE (deferred_fns, i) = NULL;
-             reconsider = true;
-           }
-       }
-    } while (reconsider);
-
   VARRAY_FREE (deferred_fns);
 
   if (static_ctors)