From: Martin Liska Date: Fri, 13 Aug 2021 09:10:56 +0000 (+0200) Subject: ipa: do not make localaliases for target_clones [PR101261] X-Git-Tag: basepoints/gcc-13~5413 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fa28520fadb9405f4387ceb419b0b7fc3ba0a61f;p=thirdparty%2Fgcc.git ipa: do not make localaliases for target_clones [PR101261] PR ipa/101261 gcc/ChangeLog: * symtab.c (symtab_node::noninterposable_alias): Do not create local aliases for target_clone functions as the clonning pass rejects aliases. gcc/testsuite/ChangeLog: * gcc.target/i386/pr101261.c: New test. --- diff --git a/gcc/symtab.c b/gcc/symtab.c index 8c4cb70b0154..c7ea8ecef74f 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -1959,6 +1959,8 @@ symtab_node::noninterposable_alias (void) /* If aliases aren't supported by the assembler, fail. */ if (!TARGET_SUPPORTS_ALIASES) return NULL; + else if (lookup_attribute ("target_clones", DECL_ATTRIBUTES (node->decl))) + return NULL; /* Otherwise create a new one. */ new_decl = copy_node (node->decl); diff --git a/gcc/testsuite/gcc.target/i386/pr101261.c b/gcc/testsuite/gcc.target/i386/pr101261.c new file mode 100644 index 000000000000..d25d1a202c2f --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr101261.c @@ -0,0 +1,11 @@ +/* PR middle-end/101261 */ +/* { dg-do compile { target fpic } } */ +/* { dg-options "-fno-semantic-interposition -fPIC" } */ +/* { dg-require-ifunc "" } */ + +void +__attribute__((target_clones("default", "avx2"))) +dt_ioppr_transform_image_colorspace() +{ + dt_ioppr_transform_image_colorspace(); +}