probinson added a comment. > For ELF, `used` does not retain the entity, regardless of this patch.
That statement does not match my experience. Note that there are two separate variables documented in the LangRef: `llvm.used` (which corresponds to source attribute `used` and is documented as affecting linker behavior) and `llvm.compiler.used` (which is a rare construct with no corresponding source attribute, and does not affect linker behavior). So, according to LangRef, source attribute `used` maps to `llvm.used` which is documented as affecting linker behavior, and that's exactly the behavior I am seeing in my project. But from a user perspective, the IR representation is irrelevant, I don't actually care what the description of `llvm.used` says. I put attribute `used` on my data, and it is still there in the final executable. That's how things have worked for a long time, and I am concerned that you are about to break it. Note that I am not using groups or comdats or anything else funky; I'm declaring static variables in a custom section, adding attribute `used` and the necessary `__start_/__stop_` symbols, and everything works exactly as I want. Maybe there is a different patch that more directly relates to my concern, and probably we should be having this conversation on the llvm-dev thread instead of in a patch that not many people are paying attention to. I'm very happy to move the discussion elsewhere if that would help. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D96838/new/ https://reviews.llvm.org/D96838 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits