aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2006-05-23 02:26:12 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2006-05-23 00:26:12 +0000
commitb633db7b859751e579a2f0d44c6869c2f505beb8 (patch)
treeea443ea7cda60dcc11a127388746050b3937dc2e /gcc
parent30df044aeafa4d2af106d094b68c1bda78c89839 (diff)
downloadgcc-b633db7b859751e579a2f0d44c6869c2f505beb8.zip
gcc-b633db7b859751e579a2f0d44c6869c2f505beb8.tar.gz
gcc-b633db7b859751e579a2f0d44c6869c2f505beb8.tar.bz2
cgraphunit.c (decide_is_function_needed): Also nested functions and functions declared inline can be optimized out at -O0.
* cgraphunit.c (decide_is_function_needed): Also nested functions and functions declared inline can be optimized out at -O0. From-SVN: r114008
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cgraphunit.c10
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 27a17e5..988d4f9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-05-23 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (decide_is_function_needed): Also nested functions
+ and functions declared inline can be optimized out at -O0.
+
2006-05-22 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (Configuration): Remove reference to CrossGCC
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 14e4dca..8a4d0ec 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -219,10 +219,14 @@ decide_is_function_needed (struct cgraph_node *node, tree decl)
COMDAT functions that must be output only when they are needed.
When not optimizing, also output the static functions. (see
- PR25962), but don't do so for always_inline functions.
- */
+ PR25962), but don't do so for always_inline functions, functions
+ declared inline and nested functions. These was optimized out
+ in the original implementation and it is unclear whether we want
+ to change the behaviour here. */
if (((TREE_PUBLIC (decl)
- || (!optimize && !node->local.disregard_inline_limits))
+ || (!optimize && !node->local.disregard_inline_limits
+ && !DECL_DECLARED_INLINE_P (decl)
+ && !node->origin))
&& !flag_whole_program)
&& !DECL_COMDAT (decl) && !DECL_EXTERNAL (decl))
return true;