[clang] [Clang][AArch64] Diagnose invalid FPM scale arguments (PR #227722)

via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 1 08:57:53 PDT 2026


================
@@ -1156,6 +1156,26 @@ bool SemaARM::CheckARMBuiltinExclusiveCall(const TargetInfo &TI,
   return false;
 }
 
+static bool checkFPMScaleIfConstant(Sema &S, CallExpr *Call, unsigned ArgNum,
+                                    int64_t Low, int64_t High) {
+  Expr *Arg = Call->getArg(ArgNum);
+
+  if (Arg->isTypeDependent() || Arg->isValueDependent())
+    return false;
+
+  std::optional<llvm::APSInt> Value = Arg->getIntegerConstantExpr(S.Context);
+
+  // Runtime value: accept it.
+  if (!Value)
+    return false;
+
+  if (*Value < Low || *Value > High)
+    return S.Diag(Call->getBeginLoc(), diag::err_argument_invalid_range)
----------------
CarolineConcatto wrote:

Just in case :
Is warn_argument_invalid_range is marked DefaultError? So it already behaves as an error by default, the user could downgrade it to just warning thought.


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


More information about the cfe-commits mailing list