[llvm-branch-commits] [clang] [Clang] Add pointer field protection feature. (PR #172119)

Florian Mayer via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue Jan 13 08:30:16 PST 2026


================
@@ -905,6 +906,29 @@ bool ConstStructBuilder::Build(const APValue &Val, const RecordDecl *RD,
     if (!EltInit)
       return false;
 
+    if (CGM.getContext().isPFPField(*Field)) {
+      llvm::ConstantInt *Disc;
+      llvm::Constant *AddrDisc;
+      if (CGM.getContext().arePFPFieldsTriviallyCopyable(RD)) {
+        uint64_t FieldSignature =
+            llvm::getPointerAuthStableSipHash(CGM.getPFPFieldName(*Field));
+        Disc = llvm::ConstantInt::get(CGM.Int64Ty, FieldSignature);
+        AddrDisc = llvm::ConstantPointerNull::get(CGM.VoidPtrTy);
+      } else if (Emitter.isAbstract()) {
----------------
fmayer wrote:

^ add this as a comment

https://github.com/llvm/llvm-project/pull/172119


More information about the llvm-branch-commits mailing list