summaryrefslogtreecommitdiff
path: root/gcc/cgraph.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2013-08-30 15:41:26 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2013-08-30 15:41:26 +0000
commit2fe870c52e8c48cf1675840726f03dc5b6ad2ba4 (patch)
tree3b9154fede0868d904d1f675f33c7c0dbcdfd5e6 /gcc/cgraph.c
parentafc1cf36f4c79a823caff2587a65f9f033d96ea1 (diff)
downloadgcc-2fe870c52e8c48cf1675840726f03dc5b6ad2ba4.tar.gz
* cgraph.c (cgraph_function_body_availability): Handle weakref
correctly. * passes.def: Remove pass_fixup_cfg. * ipa-inline.c (ipa_inline): When not optimizing, do not inline; track when we need to remove functions. (gate_ipa_inline): Execute inlining always; add comment why. (pass_data_ipa_inline): Remove TODO_remove_functions. * ipa-inline-analysis.c (inline_generate_summary): When not optimizing do not produce summaries. * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs. (symtab_nonoverwritable_alias): Assert we are not called on weakref. * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs, constant pool and vtable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202111 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraph.c')
-rw-r--r--gcc/cgraph.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index feb17bb0dd9..d89522432b3 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -2046,6 +2046,8 @@ cgraph_function_body_availability (struct cgraph_node *node)
avail = AVAIL_NOT_AVAILABLE;
else if (node->local.local)
avail = AVAIL_LOCAL;
+ else if (node->symbol.alias && node->symbol.weakref)
+ cgraph_function_or_thunk_node (node, &avail);
else if (!node->symbol.externally_visible)
avail = AVAIL_AVAILABLE;
/* Inline functions are safe to be analyzed even if their symbol can