https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107727
Bug ID: 107727
Summary: error: multiversioning needs 'ifunc' which is not
supported on this target (x86_64-w64-mingw32 target)
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: unlvsur at live dot com
Target Milestone: ---
#include<cstdio>
[[__gnu__::__target__("avx2")]]
inline void foo()
{
puts("avx2\n");
}
[[__gnu__::__target__("default")]]
inline void foo()
{
puts("default\n");
}
int main()
{
foo();
}
$ clang++ -o a a.cc --target=x86_64-windows-gnu -s -flto=thin -fuse-ld=lld
$ wine a.exe
avx2
$ x86_64-w64-mingw32-g++ -o a a.cc -s -flto
a.cc: In function 'int main()':
a.cc:10:13: error: multiversioning needs 'ifunc' which is not supported on this
target
10 | inline void foo()
| ^~~
a.cc:18:1: error: use of multiversioned function without a default
18 | }
| ^