summaryrefslogtreecommitdiff
path: root/gcc/cgraph.c
diff options
context:
space:
mode:
authoredlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4>2013-09-17 14:51:06 +0000
committeredlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4>2013-09-17 14:51:06 +0000
commitf1ff006725799ca277daadc6500e19561561169d (patch)
tree940d062be15ecc9055552e55be3f65b2d8ab9f0d /gcc/cgraph.c
parent99e2f77b32f7defca60ad13fdd60896b18452be0 (diff)
downloadgcc-f1ff006725799ca277daadc6500e19561561169d.tar.gz
2013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR ipa/58398 * cgraph.c (cgraph_function_body_availability): Check for ifunc attribute, and don't inline the resolver in this case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202655 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 ebc48bf8aec..c8e1b9c4c3e 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -2048,6 +2048,8 @@ cgraph_function_body_availability (struct cgraph_node *node)
avail = AVAIL_LOCAL;
else if (node->symbol.alias && node->symbol.weakref)
cgraph_function_or_thunk_node (node, &avail);
+ else if (lookup_attribute ("ifunc", DECL_ATTRIBUTES (node->symbol.decl)))
+ avail = AVAIL_OVERWRITABLE;
else if (!node->symbol.externally_visible)
avail = AVAIL_AVAILABLE;
/* Inline functions are safe to be analyzed even if their symbol can