[clang] [PAC][clang] Correct handling of ptrauth queries of incomplete types (PR #164528)

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 22 13:54:13 PDT 2025


================
@@ -1618,8 +1618,26 @@ void ASTContext::setRelocationInfoForCXXRecord(
   RelocatableClasses.insert({D, Info});
 }
 
+// In future we may want to distinguish the presence or absence of address
+// discrimination, from the inability to determine the presence. For now we rely
+// on all source facing interfaces (type trait queries, etc) diagnosing and
+// reporting an error before reaching these paths.
+static bool canDeterminePointerAuthContent(QualType Type) {
+  if (Type->isIncompleteType() || Type->isDependentType())
+    return false;
+  const TagDecl *Decl = Type->getAsTagDecl();
+  return !Decl || !Decl->getDefinition()->isInvalidDecl();
----------------
mizvekov wrote:

Did you try modifying `IsIncompleteType` so it doesn't consider a Tag with invalid definition as complete?

That would give us more data to answer if this a good approach.

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


More information about the cfe-commits mailing list