[llvm-dev] How to force an unused function declaration in clang
mayuyu.io via llvm-dev
llvm-dev at lists.llvm.org
Tue Jun 26 06:29:48 PDT 2018
Out of curiosity, how does an unused declaration affect the emitted object file
> 在 2018年6月26日，08:48，Soham Sinha via llvm-dev <llvm-dev at lists.llvm.org> 写道：
> clang doesn't seem to respect __attribute__((used)) in C functions. Even if I declare a function like the following: __attribute__((used)) void function(), then also it doesn't declare the function in its IR file if I don't use the function. Is there any other way to force the declaration of "unused" function declarations with clang.
> I have hacked in clang 6.0.0 in tools/clang/lib/CodeGen/CodeGenModule.cpp file. I changed in EmitGlobal function to detect if the function has "used" attribute and then if it has then use "GetOrCreateLLVMFunction" this to create the function declaration. However, this hack fails in some other cases. Therefore I am looking for a proper way to do this.
> Soham Sinha
> PhD Student, Department of Computer Science
> Boston University
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
More information about the llvm-dev