[clang] [FMV] Allow multi versioning without default declaration. (PR #85454)

Jon Roelofs via cfe-commits cfe-commits at lists.llvm.org
Sat Mar 23 16:37:50 PDT 2024


================
@@ -483,14 +483,16 @@ void just_fine(void) {}
 
 __arm_locally_streaming
 __attribute__((target_version("sme2")))
-void just_fine_locally_streaming(void) {}
+void incompatible_locally_streaming(void) {}
+// expected-error at -1 {{attribute 'target_version' multiversioning cannot be combined with attribute '__arm_locally_streaming'}}
+// expected-cpp-error at -2 {{attribute 'target_version' multiversioning cannot be combined with attribute '__arm_locally_streaming'}}
----------------
jroelofs wrote:

I think this is a regression, but it's fine to fix it in another patch. The locally streaming function has the same ABI as the non-streaming one, so FMV _should_ be possible between them (unlike w/ a streaming one). LIkewise, it should be possible to FMV between streaming compatible functions and normal ones.

https://github.com/llvm/llvm-project/pull/85454


More information about the cfe-commits mailing list