================
@@ -2126,14 +2219,16 @@ static ExprResult PointerAuthSignGenericData(Sema &S, 
CallExpr *Call) {
 }
 
 static ExprResult PointerAuthSignOrAuth(Sema &S, CallExpr *Call,
-                                        PointerAuthOpKind OpKind) {
+                                        PointerAuthOpKind OpKind,
+                                        bool RequireConstant) {
   if (S.checkArgCount(Call, 3))
     return ExprError();
   if (checkPointerAuthEnabled(S, Call))
     return ExprError();
-  if (checkPointerAuthValue(S, Call->getArgs()[0], OpKind) ||
+  if (checkPointerAuthValue(S, Call->getArgs()[0], OpKind, RequireConstant) ||
----------------
ahmedbougacha wrote:

This one is actually interesting: we can't do that as-is, because the helper 
functions take an `Expr *&`, to do type conversion and placeholder expansion 
in-place;  see e.g., `convertArgumentToType`.
Another existing user makes the modification explicit using a local and 
`setArg`, but we have a lot of these calls in the checking code here.

We can rename the helper to something explicit though, perhaps 
`checkAndConvertPointerAuthValue`, and pass the call expr and arg index 
separately (same for key etc.)

https://github.com/llvm/llvm-project/pull/93904
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to