From 27442c2405bc264c435b485db9a13f6061535aa7 Mon Sep 17 00:00:00 2001 From: Bernd Edlinger Date: Tue, 17 Sep 2013 14:51:06 +0000 Subject: [PATCH] re PR ipa/58398 (gcc.dg/attr-ifunc-4.c runfail regression after r202111) 2013-09-17 Bernd Edlinger 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 --- gcc/ChangeLog | 6 ++++++ gcc/cgraph.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4af3c83f290..075b1a011bd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-09-17 Bernd Edlinger + + 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 * coverage.c (get_coverage_counts): Add missing newline. 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