diff options
author | Jakub Jelinek <jakub@redhat.com> | 2001-11-20 12:10:16 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2001-11-20 12:10:16 +0100 |
commit | 2dbd62fff24988d6fccae6b6c67f89ac40159389 (patch) | |
tree | e3095f7ff8c0628af19048bba72c2a82a742abd5 /gcc/c-lang.c | |
parent | 55fae1a97f164c030db1b90d5d804ecc583a1ea9 (diff) | |
download | gcc-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.c | 28 |
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) |