aboutsummaryrefslogtreecommitdiff
path: root/gcc/multiple_target.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/multiple_target.c')
-rw-r--r--gcc/multiple_target.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/multiple_target.c b/gcc/multiple_target.c
index c1cfe8f..b15d004 100644
--- a/gcc/multiple_target.c
+++ b/gcc/multiple_target.c
@@ -483,7 +483,8 @@ redirect_to_specific_clone (cgraph_node *node)
DECL_ATTRIBUTES (e->callee->decl));
/* Function is not calling proper target clone. */
- if (!attribute_list_equal (attr_target, attr_target2))
+ if (attr_target2 == NULL_TREE
+ || !attribute_value_equal (attr_target, attr_target2))
{
while (fv2->prev != NULL)
fv2 = fv2->prev;
@@ -494,7 +495,8 @@ redirect_to_specific_clone (cgraph_node *node)
cgraph_node *callee = fv2->this_node;
attr_target2 = lookup_attribute ("target",
DECL_ATTRIBUTES (callee->decl));
- if (attribute_list_equal (attr_target, attr_target2))
+ if (attr_target2 != NULL_TREE
+ && attribute_value_equal (attr_target, attr_target2))
{
e->redirect_callee (callee);
cgraph_edge::redirect_call_stmt_to_callee (e);