aboutsummaryrefslogtreecommitdiff
path: root/src/entity.cpp
diff options
context:
space:
mode:
authorHarold Brenes <harold@hbrenes.com>2025-09-16 00:49:31 -0400
committerHarold Brenes <harold@hbrenes.com>2025-09-29 20:37:48 -0400
commit5af13f5d53b4e5f5d472cd8a8bc4444f05ea36d6 (patch)
tree4b98f8c00bf9ffdf7a4d8be617b8e1dc7689bf30 /src/entity.cpp
parent9b4c0ea4920ea70b3e9206979aa7fd36608c4837 (diff)
Automatically emit objc_msgSend calls when calling imported or implemented Objective-C methods
- Add intrinsics.objc_super() - Emit objc_msgSendSuper2 calls when an objc method call is combined with objc_super(self) - Fix objc_block return value ABI for large struct returns - Fix objc_implement method wrappers bad ABI for large struct returns and indirect args - Simplify parameter forwarding for objc_imlpement methods - Add intrinsics.objc_instancetype to mimi Objective-C instancetype* returns This facilitates returning the correct type on subclasses when calling mehtods such as `alloc`, `init`, `retain`, etc. - Refactor Objective-C class implementations generation so that hierarchies are properly initialized - Better codegen for context passing with ivar-based autocontext - Allow @superclass on imported objc-c objects - Better codegen for block forwarding invoker, arguments are forwarded directly
Diffstat (limited to 'src/entity.cpp')
-rw-r--r--src/entity.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/entity.cpp b/src/entity.cpp
index d6d8f58de..2b21fdcac 100644
--- a/src/entity.cpp
+++ b/src/entity.cpp
@@ -251,6 +251,8 @@ struct Entity {
String link_name;
String link_prefix;
String link_suffix;
+ String objc_selector_name;
+ Entity *objc_class;
DeferredProcedure deferred_procedure;
struct GenProcsData *gen_procs;
@@ -266,6 +268,8 @@ struct Entity {
bool is_anonymous : 1;
bool no_sanitize_address : 1;
bool no_sanitize_memory : 1;
+ bool is_objc_impl_or_import : 1;
+ bool is_objc_class_method : 1;
} Procedure;
struct {
Array<Entity *> entities;