[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();
rjmccall wrote:
> 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 mailing list