diff options
author | Martin Liska <mliska@suse.cz> | 2021-08-13 11:10:56 +0200 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2021-08-13 15:44:11 +0200 |
commit | fa28520fadb9405f4387ceb419b0b7fc3ba0a61f (patch) | |
tree | eb2db73beb74d9cb6fc286fb56d6b2113404dde7 /gcc | |
parent | 5eb304a3e510742d65dc327b177ef1078fd6349c (diff) | |
download | gcc-fa28520fadb9405f4387ceb419b0b7fc3ba0a61f.zip gcc-fa28520fadb9405f4387ceb419b0b7fc3ba0a61f.tar.gz gcc-fa28520fadb9405f4387ceb419b0b7fc3ba0a61f.tar.bz2 |
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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/symtab.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr101261.c | 11 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/symtab.c b/gcc/symtab.c index 8c4cb70..c7ea8ec 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 0000000..d25d1a2 --- /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(); +} |