Hi. As suggested by Joseph, the patch is about not copying target_clones attributes in handle_copy_attribute.
Patch can bootstrap on x86_64-linux-gnu and survives regression tests. Ready to be installed? Thanks, Martin gcc/c-family/ChangeLog: 2019-05-21 Martin Liska <mli...@suse.cz> PR lto/90500 * c-attribs.c (handle_copy_attribute): Do not copy target_clones attribute. gcc/testsuite/ChangeLog: 2019-05-21 Martin Liska <mli...@suse.cz> PR lto/90500 * gcc.target/i386/pr90500-1.c: Make the test-case valid now. --- gcc/c-family/c-attribs.c | 3 ++- gcc/testsuite/gcc.target/i386/pr90500-1.c | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc/c-family/c-attribs.c b/gcc/c-family/c-attribs.c index 03203470955..517b7e0dd01 100644 --- a/gcc/c-family/c-attribs.c +++ b/gcc/c-family/c-attribs.c @@ -2486,7 +2486,8 @@ handle_copy_attribute (tree *node, tree name, tree args, || is_attribute_p ("noinline", atname) || is_attribute_p ("visibility", atname) || is_attribute_p ("weak", atname) - || is_attribute_p ("weakref", atname)) + || is_attribute_p ("weakref", atname) + || is_attribute_p ("target_clones", atname)) continue; /* Attribute leaf only applies to extern functions. diff --git a/gcc/testsuite/gcc.target/i386/pr90500-1.c b/gcc/testsuite/gcc.target/i386/pr90500-1.c index 7ac6a739c05..2b4639ca7f9 100644 --- a/gcc/testsuite/gcc.target/i386/pr90500-1.c +++ b/gcc/testsuite/gcc.target/i386/pr90500-1.c @@ -3,6 +3,5 @@ /* { dg-require-ifunc } */ __attribute__((target_clones("arch=haswell", "default"))) int __tanh() {} -__typeof(__tanh) tanhf64 __attribute__((alias("__tanh")))/* { dg-error "clones for .target_clones. attribute cannot be created" } */ - /* { dg-message "'target_clones' cannot be combined with 'alias' attribute" "" { target *-*-* } .-1 } */ +__typeof(__tanh) tanhf64 __attribute__((alias("__tanh"))) __attribute__((__copy__(__tanh)));