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 | |
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')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c-lang.c | 28 |
2 files changed, 11 insertions, 23 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ecf3e82..9aef7fa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 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) |