[PATCH] D30977: [CodeGen] Emit a CoreFoundation link guard when @available is used
Alex Lorenz via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 16 11:13:35 PDT 2017
arphaman added inline comments.
Comment at: lib/CodeGen/CGObjC.cpp:3428
+ // CoreFoundation is not used in the code, the linker won't link the
+ // framework.
+ auto &Context = getLLVMContext();
> Can you explain why compiler-rt has to load the symbol at runtime? Is this just some compiler-rt testing thing? Because it seems like a shame to pay a code-size cost — even a negligible one — for something like that.
Because compiler-rt is linked into some internal projects that use the `-all_load` flag, so the linker loads `__isOSVersionAtLeast` that references the CoreFoundation symbols even when it's not used in code.
More information about the cfe-commits