aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Edlinger <bernd.edlinger@hotmail.de>2013-09-17 14:51:06 +0000
committerBernd Edlinger <edlinger@gcc.gnu.org>2013-09-17 14:51:06 +0000
commit27442c2405bc264c435b485db9a13f6061535aa7 (patch)
tree940d062be15ecc9055552e55be3f65b2d8ab9f0d /gcc
parent753b9bc3bbc3b1b514fbd92a8e862abc616792a2 (diff)
downloadgcc-27442c2405bc264c435b485db9a13f6061535aa7.zip
gcc-27442c2405bc264c435b485db9a13f6061535aa7.tar.gz
gcc-27442c2405bc264c435b485db9a13f6061535aa7.tar.bz2
re PR ipa/58398 (gcc.dg/attr-ifunc-4.c runfail regression after r202111)
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. From-SVN: r202655
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cgraph.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4af3c83..075b1a0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+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.
+
2013-09-17 Teresa Johnson <tejohnson@google.com>
* coverage.c (get_coverage_counts): Add missing newline.
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index ebc48bf..c8e1b9c 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