================ @@ -2030,8 +2030,25 @@ bool Sema::checkConstantPointerAuthKey(Expr *Arg, unsigned &Result) { return false; } +static std::pair<const ValueDecl *, CharUnits> +findConstantBaseAndOffset(Sema &S, Expr *E) { + // Must evaluate as a pointer. + Expr::EvalResult Result; + if (!E->EvaluateAsRValue(Result, S.Context) || !Result.Val.isLValue()) + return std::make_pair(nullptr, CharUnits()); + + // Base must be a declaration and can't be weakly imported. ---------------- ahmedbougacha wrote:
I removed the weakref base pointer check because that's currently supported in the qualifier (and I think this should have also checked for weakimport as well for the cases I care about), so the backend has to deal with ptrauth weak refs anyway. There's a higher-level set of problems around how we deal with weak refs in general, but that's a separate topic. 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