Lines Matching full:schema

24 /// Given a pointer-authentication schema, return a concrete "other"
27 const PointerAuthSchema &Schema, GlobalDecl Decl, QualType Type) { in getPointerAuthOtherDiscriminator() argument
28 switch (Schema.getOtherDiscrimination()) { in getPointerAuthOtherDiscriminator()
33 assert(!Type.isNull() && "type not provided for type-discriminated schema"); in getPointerAuthOtherDiscriminator()
39 "declaration not provided for decl-discriminated schema"); in getPointerAuthOtherDiscriminator()
44 return llvm::ConstantInt::get(IntPtrTy, Schema.getConstantDiscrimination()); in getPointerAuthOtherDiscriminator()
72 /// Return the abstract pointer authentication schema for a pointer to the given
75 const auto &Schema = getCodeGenOpts().PointerAuth.FunctionPointers; in getFunctionPointerAuthInfo() local
76 if (!Schema) in getFunctionPointerAuthInfo()
79 assert(!Schema.isAddressDiscriminated() && in getFunctionPointerAuthInfo()
86 Discriminator = getPointerAuthOtherDiscriminator(Schema, GlobalDecl(), T); in getFunctionPointerAuthInfo()
88 return CGPointerAuthInfo(Schema.getKey(), Schema.getAuthenticationMode(), in getFunctionPointerAuthInfo()
102 /// given authentication schema.
104 const PointerAuthSchema &Schema, llvm::Value *StorageAddress, in EmitPointerAuthInfo() argument
106 if (!Schema) in EmitPointerAuthInfo()
110 CGM.getPointerAuthOtherDiscriminator(Schema, SchemaDecl, SchemaType); in EmitPointerAuthInfo()
112 if (Schema.isAddressDiscriminated()) { in EmitPointerAuthInfo()
114 "address not provided for address-discriminated schema"); in EmitPointerAuthInfo()
123 return CGPointerAuthInfo(Schema.getKey(), Schema.getAuthenticationMode(), in EmitPointerAuthInfo()
124 Schema.isIsaPointer(), in EmitPointerAuthInfo()
125 Schema.authenticatesNullValues(), Discriminator); in EmitPointerAuthInfo()
135 // Function pointers use the function-pointer schema by default. in getPointerAuthInfoForPointeeType()
230 // Fast path: if neither schema wants a signature, we're done. in emitPointerAuthResign()
317 bool CodeGenModule::shouldSignPointer(const PointerAuthSchema &Schema) { in shouldSignPointer() argument
318 auto AuthenticationMode = Schema.getAuthenticationMode(); in shouldSignPointer()
326 llvm::Constant *Pointer, const PointerAuthSchema &Schema, in getConstantSignedPointer() argument
329 assert(shouldSignPointer(Schema)); in getConstantSignedPointer()
331 getPointerAuthOtherDiscriminator(Schema, SchemaDecl, SchemaType); in getConstantSignedPointer()
333 return getConstantSignedPointer(Pointer, Schema.getKey(), StorageAddress, in getConstantSignedPointer()
370 const auto &Schema = getCodeGenOpts().PointerAuth.CXXMemberFunctionPointers; in getMemberFunctionPointerAuthInfo() local
371 if (!Schema) in getMemberFunctionPointerAuthInfo()
374 assert(!Schema.isAddressDiscriminated() && in getMemberFunctionPointerAuthInfo()
378 getPointerAuthOtherDiscriminator(Schema, GlobalDecl(), FT); in getMemberFunctionPointerAuthInfo()
379 return CGPointerAuthInfo(Schema.getKey(), Schema.getAuthenticationMode(), in getMemberFunctionPointerAuthInfo()
498 "address not provided for address-discriminated schema"); in getVTablePointerAuthInfo()
552 // auth info on Ptr to the assumed schema. The pointer will be resigned to in authPointerToPointerCast()