The leading 'l' tells ld64 to remove the symbol name, which can make debugging difficult.
rdar://problem/47256637
Paths
| Differential D59234
[CodeGen][ObjC] Remove the leading 'l' from symbols for protocol metadata and protocol list ClosedPublic Authored by ahatanak on Mar 11 2019, 3:46 PM.
Details Summary The leading 'l' tells ld64 to remove the symbol name, which can make debugging difficult. rdar://problem/47256637
Diff Detail
Event TimelineComment Actions There are other symbols that starts with 'l' and have private linkage. I haven't made any changes to those symbols in this patch, but I think it's possible to remove the leading 'l' from those symbols and change the linkage to internal if we want to keep the symbol names. Comment Actions Using internal linkage instead of private makes sense to me. Even if we wanted to use private linkage, it never made sense to be doing this with \01l instead of just setting the linkage properly. Maybe this was implemented before LLVM directly supported private linkage, but that hasn't been a constraint in 10+ years. This revision is now accepted and ready to land.Mar 12 2019, 1:18 PM Comment Actions Okay, I'll remove the leading 'l' from other symbols and make them internal in a separate patch. Closed by commit rL356156: [CodeGen][ObjC] Remove the leading 'l' from symbols for protocol (authored by ahatanak). · Explain WhyMar 14 2019, 8:17 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 190634 cfe/trunk/lib/CodeGen/CGObjCMac.cpp
cfe/trunk/test/CodeGenObjC/forward-protocol-metadata-symbols.m
cfe/trunk/test/CodeGenObjC/hidden-visibility.m
cfe/trunk/test/CodeGenObjC/metadata-class-properties.m
cfe/trunk/test/CodeGenObjC/metadata-symbols-64.m
cfe/trunk/test/CodeGenObjC/protocol-comdat.m
cfe/trunk/test/CodeGenObjC/protocol-in-extended-class.m
cfe/trunk/test/CodeGenObjC/protocols.m
cfe/trunk/test/CodeGenObjC/sections.m
cfe/trunk/test/CodeGenObjC/undefined-protocol2.m
|