[clang] [Clang][AArch64] Warn when calling streaming/non-streaming about vect… (PR #79842)

Sander de Smalen via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 14 00:38:35 PST 2024


================
@@ -12236,6 +12236,23 @@ bool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD,
     bool UsesSM = NewFD->hasAttr<ArmLocallyStreamingAttr>();
     bool UsesZA = Attr && Attr->isNewZA();
     bool UsesZT0 = Attr && Attr->isNewZT0();
+
+    if (UsesSM) {
+      if (NewFD->getReturnType()->isSizelessVectorType())
+        Diag(NewFD->getLocation(),
+             diag::warn_sme_locally_streaming_has_vl_args_returns);
+      auto *FPT = NewFD->getType()->castAs<FunctionProtoType>();
----------------
sdesmalen-arm wrote:

Is `FunctionPrototype` correct here? That means the check does not happen on unprototyped functions, such as `__arm_locally_streaming void foo() { ... }` in C (not C++).

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


More information about the cfe-commits mailing list