aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/symtab.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 067723c..384dd37 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2017-02-03 Martin Liska <mliska@suse.cz>
+ * symtab.c (symtab_node::binds_to_current_def_p): Bail out
+ in case of a function with ifunc attribute.
+
+2017-02-03 Martin Liska <mliska@suse.cz>
+
* cgraph.c (cgraph_node::dump): Dump function version info.
* symtab.c (symtab_node::dump_base): Add missing new line.
diff --git a/gcc/symtab.c b/gcc/symtab.c
index 0078896..f0baf08 100644
--- a/gcc/symtab.c
+++ b/gcc/symtab.c
@@ -2225,6 +2225,8 @@ symtab_node::binds_to_current_def_p (symtab_node *ref)
if (transparent_alias)
return definition
&& get_alias_target()->binds_to_current_def_p (ref);
+ if (lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)))
+ return false;
if (decl_binds_to_current_def_p (decl))
return true;