PR middle-end/PR30700

PR middle-end/PR30700
	* dwarf2out.c (reference_to_unused): Ask cgraph for functions 
	availablility; add more sanity checking; ask varpool only about
	VAR_DECL.

From-SVN: r123358
This commit is contained in:
Jan Hubicka 2007-03-30 10:03:55 +02:00 committed by Jan Hubicka
parent cc5e1fab40
commit 4f40bddfb0
2 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2007-03-30 Jan Hubicka <jh@suse.cz>
PR middle-end/PR30700
* dwarf2out.c (reference_to_unused): Ask cgraph for functions
availablility; add more sanity checking; ask varpool only about
VAR_DECL.
2007-03-29 Richard Henderson <rth@redhat.com>
* unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG

View File

@ -10121,12 +10121,24 @@ reference_to_unused (tree * tp, int * walk_subtrees,
if (DECL_P (*tp) && ! TREE_PUBLIC (*tp) && ! TREE_USED (*tp)
&& ! TREE_ASM_WRITTEN (*tp))
return *tp;
else if (DECL_P (*tp) && TREE_CODE (*tp) != FUNCTION_DECL)
else if (!flag_unit_at_a_time)
return NULL_TREE;
else if (!cgraph_global_info_ready
&& (TREE_CODE (*tp) == VAR_DECL || TREE_CODE (*tp) == FUNCTION_DECL))
gcc_unreachable ();
else if (DECL_P (*tp) && TREE_CODE (*tp) == VAR_DECL)
{
struct varpool_node *node = varpool_node (*tp);
if (!node->needed)
return *tp;
}
else if (DECL_P (*tp) && TREE_CODE (*tp) == FUNCTION_DECL
&& (!DECL_EXTERNAL (*tp) || DECL_DECLARED_INLINE_P (*tp)))
{
struct cgraph_node *node = cgraph_node (*tp);
if (!node->output)
return *tp;
}
return NULL_TREE;
}