People use -ffunction-sections to put each function into its own
object-file section; this makes linker garbage-collection simpler.
However, if there's an explicit attribute((section("name")))
on the function, the programmer is indicating the function has
some special purpose, and is not expected to be garbage collected.
In that case, add the function to the "llvm.used" list, which for ELF
adds SHF_GNU_RETAIN to the section flags, preventing GC.