diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 27a17e5f3f71..988d4f9924ed 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-05-23 Jan Hubicka + + * cgraphunit.c (decide_is_function_needed): Also nested functions + and functions declared inline can be optimized out at -O0. + 2006-05-22 Gerald Pfeifer * doc/install.texi (Configuration): Remove reference to CrossGCC diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 14e4dca4d47c..8a4d0ec69eb2 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;