diff options
author | edlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-17 14:51:06 +0000 |
---|---|---|
committer | edlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-17 14:51:06 +0000 |
commit | f1ff006725799ca277daadc6500e19561561169d (patch) | |
tree | 940d062be15ecc9055552e55be3f65b2d8ab9f0d /gcc/cgraph.c | |
parent | 99e2f77b32f7defca60ad13fdd60896b18452be0 (diff) | |
download | gcc-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.c | 2 |
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 |