aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-lang.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2001-11-20 12:10:16 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2001-11-20 12:10:16 +0100
commit2dbd62fff24988d6fccae6b6c67f89ac40159389 (patch)
treee3095f7ff8c0628af19048bba72c2a82a742abd5 /gcc/c-lang.c
parent55fae1a97f164c030db1b90d5d804ecc583a1ea9 (diff)
downloadgcc-2dbd62fff24988d6fccae6b6c67f89ac40159389.zip
gcc-2dbd62fff24988d6fccae6b6c67f89ac40159389.tar.gz
gcc-2dbd62fff24988d6fccae6b6c67f89ac40159389.tar.bz2
c-lang.c (finish_file): Backout 2001-11-16 changes...
* 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. From-SVN: r47212
Diffstat (limited to 'gcc/c-lang.c')
-rw-r--r--gcc/c-lang.c28
1 files changed, 5 insertions, 23 deletions
diff --git a/gcc/c-lang.c b/gcc/c-lang.c
index 54f86df..9f0fb28 100644
--- a/gcc/c-lang.c
+++ b/gcc/c-lang.c
@@ -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)