plotfi added a comment.

In D86049#3821183 <https://reviews.llvm.org/D86049#3821183>, @plotfi wrote:

> In D86049#3819109 <https://reviews.llvm.org/D86049#3819109>, @mwyman wrote:
>
>> In D86049#3818981 <https://reviews.llvm.org/D86049#3818981>, @plotfi wrote:
>>
>>> @ahatanak I can revive some of what I was working on from 
>>> https://reviews.llvm.org/D86049?id=285923 if we think we need a thunk for 
>>> the checks as @rjmccall mentioned.
>>
>> I believe the generated direct methods already handle the null checks and 
>> class init in `CGObjCCommonMac::GenerateDirectMethodPrologue`, meaning the 
>> thunks aren't strictly necessary for the callee to handle them.
>>
>> Could the thunks instead allow us to have publicly-visible mangled names 
>> (something akin to the new selector stubs `_objc_msgSend$selectorName` but 
>> for `_objc_direct$Class_selectorName`) while leaving the actual impl name 
>> alone, letting the stack traces see normal ObjC symbol names?
>
> I think the square brackets are still problematic for linking, so is LLVM's 
> handling of \01 (I believe).

@mwyman @ahatanak The mangling code change is to appease ld64 by the way:

https://github.com/apple-oss-distributions/ld64/blob/ld64-609/src/ld/Options.cpp#L1378-L1408

The wildCardMatch function does some symbol stripping off of '?' and '['. I 
alter ']' just for stylistic consistency however. And the dropping of prefix 
byte is so that you get the preceding underbar that all visible Darwin symbols 
seem to need to have (but I am not as certain on that one).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86049/new/

https://reviews.llvm.org/D86049

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to