================
@@ -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

Reply via email to