================
@@ -322,10 +323,22 @@ class CGObjCRuntime {
MessageSendInfo getMessageSendInfo(const ObjCMethodDecl *method,
QualType resultType,
CallArgList &callArgs);
+
bool canMessageReceiverBeNull(CodeGenFunction &CGF,
const ObjCMethodDecl *method, bool isSuper,
const ObjCInterfaceDecl *classReceiver,
llvm::Value *receiver);
+
+ /// Check if a class object can be unrealized (not yet initialized).
+ /// Returns true if the class may be unrealized, false if provably realized.
+ ///
+ /// TODO: Returns false if:
+ /// - An instance method on the same class was called in a dominating path
+ /// - The class was explicitly realized earlier in control flow
+ /// - Note: [Parent foo] does NOT realize Child (inheritance care needed)
+ virtual bool canClassObjectBeUnrealized(const ObjCInterfaceDecl *ClassDecl,
----------------
kyulee-com wrote:
It looks like this isn’t used in the current PR. Can we move it to the next PR
where it’s actually needed?
https://github.com/llvm/llvm-project/pull/170616
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits