[clang] [clang] Fix PointerAuth semantics of cpp_trivially_relocatable (PR #143969)

Oliver Hunt via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 12 17:36:53 PDT 2025


================
@@ -1705,6 +1705,40 @@ void ASTContext::setRelocationInfoForCXXRecord(
   RelocatableClasses.insert({D, Info});
 }
 
+bool ASTContext::containsAddressDiscriminatedPointerAuth(QualType T) {
+  if (!LangOpts.PointerAuthCalls && !LangOpts.PointerAuthIntrinsics)
+    return false;
+
+  T = T.getCanonicalType();
+  if (T.hasAddressDiscriminatedPointerAuth())
+    return true;
+  const RecordDecl *RD = T->getAsRecordDecl();
+  if (!RD)
+    return false;
+
+  auto SaveReturn = [this, RD](bool Result) {
+    RecordContainsAddressDiscriminatedPointerAuth.insert({RD, Result});
----------------
ojhunt wrote:

llvm's map does not have emplace afaict

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


More information about the cfe-commits mailing list