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