search for: bjc_msgsend

Displaying 1 result from an estimated 1 matches for "bjc_msgsend".

Did you mean: objc_msgsend
2020 Oct 12
2
[RFC] Analysis and runtime check of objc_direct/objc_non_runtime_protocol
...interface A (Private) - (void)foo; @end // impl.mm: #include “public.h” @implementation A - (void)foo __attribute__((objc_direct)) {} @end // test.mm: #include “private.h” void test(A *a) { [a foo]; } → When compiling test.mm, foo is not treated as direct, and IR codegen will generate a call to bjc_msgSend. When compiling impl.mm, foo is direct and is removed from the ObjC metadata. We should emit an error message from the global analysis if there exists an objc_msgSend callsite that targets a direct method. With this global analysis, we can claim the invariant that within the link unit, all callsit...