================
@@ -121,20 +122,35 @@ CGPointerAuthInfo CodeGenFunction::EmitPointerAuthInfo(
if (!Schema)
return CGPointerAuthInfo();
- llvm::Value *Discriminator =
- CGM.getPointerAuthOtherDiscriminator(Schema, SchemaDecl, SchemaType);
+ return EmitPointerAuthInfo(
+ Schema, StorageAddress,
+ CGM.getPointerAuthOtherDiscriminator(Schema, SchemaDecl, SchemaType));
+}
+
+CGPointerAuthInfo
+CodeGenFunction::EmitPointerAuthInfo(const PointerAuthSchema &Schema,
+ llvm::Value *StorageAddress,
+ llvm::ConstantInt *ExtraDiscriminator) {
+ if (!Schema)
+ return CGPointerAuthInfo();
+
+ PointerAuthSchema::Discrimination ExtraDiscKind =
+ Schema.getOtherDiscrimination();
+ assert((ExtraDiscKind == PointerAuthSchema::Discrimination::None ||
+ ExtraDiscriminator) &&
+ "extra discrimination is requested but no discriminator provided");
+ llvm::Value *Discriminator = ExtraDiscriminator;
if (Schema.isAddressDiscriminated()) {
assert(StorageAddress &&
"address not provided for address-discriminated schema");
-
- if (Discriminator)
+ if (ExtraDiscKind != PointerAuthSchema::Discrimination::None) {
----------------
ojhunt wrote:
You've got the assertion, so this doesn't need to be changed and should be
reverted. Also as a heads up LLVM coding style says no braces for single
_statement_ blocks, even if the statement is multiple lines long :-/
https://github.com/llvm/llvm-project/pull/205808
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits