================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits