From cac605c68e23ae90f8b4849c103a1ab4197ed3a2 Mon Sep 17 00:00:00 2001 From: hjl Date: Sat, 26 May 2018 11:35:31 +0000 Subject: [PATCH] Don't check ifunc_resolver on error Since ifunc_resolver isn't set when an error is detected, we should lookup ifunc attribute in this case. PR target/85900 PR target/85345 * varasm.c (assemble_alias): Lookup ifunc attribute on error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260792 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/varasm.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b6836872b0b..fdfd41ac785 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-05-24 H.J. Lu + + PR target/85900 + PR target/85345 + * varasm.c (assemble_alias): Lookup ifunc attribute on error. + 2018-05-25 Jim Wilson * config/riscv/riscv-protos.h (riscv_epilogue_uses): New. diff --git a/gcc/varasm.c b/gcc/varasm.c index 6b9f87b203f..4d332f50270 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -5917,8 +5917,9 @@ assemble_alias (tree decl, tree target) # else if (!DECL_WEAK (decl)) { + /* NB: ifunc_resolver isn't set when an error is detected. */ if (TREE_CODE (decl) == FUNCTION_DECL - && cgraph_node::get (decl)->ifunc_resolver) + && lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl))) error_at (DECL_SOURCE_LOCATION (decl), "ifunc is not supported in this configuration"); else -- 2.11.4.GIT