From 5c55c2e8ca74bc7d7aeb7ecf764972f82464b481 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Mon, 28 Mar 2005 16:10:05 +0200 Subject: re PR middle-end/20635 (ICE in cgraph_mark_reachable_node) PR middle-end/20635 * varasm.c (mark_decl_referenced): Do not mark extern inline functions as needed. * compile/gcc.c-torture/compile/20050328-1.c: New testcase made by Jakub Jelinek. From-SVN: r97133 --- gcc/varasm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gcc/varasm.c') diff --git a/gcc/varasm.c b/gcc/varasm.c index 9a04cd5..c174eb4 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -1877,7 +1877,11 @@ void mark_decl_referenced (tree decl) { if (TREE_CODE (decl) == FUNCTION_DECL) - cgraph_mark_needed_node (cgraph_node (decl)); + { + /* Extern inline functions don't become needed when referenced. */ + if (!DECL_EXTERNAL (decl)) + cgraph_mark_needed_node (cgraph_node (decl)); + } else if (TREE_CODE (decl) == VAR_DECL) cgraph_varpool_mark_needed_node (cgraph_varpool_node (decl)); /* else do nothing - we can get various sorts of CST nodes here, -- cgit v1.1