================
@@ -2221,13 +2222,19 @@ llvm::Value
*ItaniumCXXABI::getVTableAddressPointInStructorWithVTT(
CGF.Builder.CreateAlignedLoad(CGF.GlobalsVoidPtrTy, VTT,
CGF.getPointerAlign());
- if (auto &Schema =
CGF.CGM.getCodeGenOpts().PointerAuth.CXXVTTVTablePointers) {
- CGPointerAuthInfo PointerAuth = CGF.EmitPointerAuthInfo(Schema, VTT,
- GlobalDecl(),
- QualType());
+ if (auto &Schema = CGM.getCodeGenOpts().PointerAuth.CXXVTTVTablePointers) {
+ llvm::ConstantInt *TypeDesc = nullptr;
+ if (Schema.getOtherDiscrimination() ==
+ PointerAuthSchema::Discrimination::Type)
+ TypeDesc = llvm::ConstantInt::get(
+ CGM.IntPtrTy,
+ CGM.getContext().getPointerAuthVTablePointerDiscriminator(
----------------
chbessonova wrote:
I'm not sure I follow. My understanding is that this means using a
discriminator derived from a VTT (via mangleCXXVTT) for all vtable pointers
stored in that VTT, rather than deriving it from an individual vtable. Is that
what you meant, or am I misunderstanding?
https://github.com/llvm/llvm-project/pull/205808
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits