[LLVMdev] LLVM{Add,Remove}FunctionAttr totally broken

Matti Niemenmaa matti.niemenmaa+news at iki.fi
Thu Jan 7 04:16:58 PST 2010

On 2009-12-30 01:16, James Y Knight wrote:
> The LLVMAddFunctionAttr and LLVMRemoveFunctionAttr are busted: they
> actually set the return value's attributes, not the function's
> attributes. There seems to be no C API for actually setting the
> function attributes.
> LLVMGetFunctionAttr, however, does correctly return the function
> attributes, not the return value's attributes. There is no C API for
> getting the return value attributes. (And if the above functions are
> fixed, there would also be no way to set return value attributes).
> I'd like to propose that LLVM{Add,Remove}FunctionAttr be fixed to
> actually set the function attributes. And that a new API, LLVM
> {Add,Remove,Get}RetAttr be added, like:
> void LLVMAddRetAttr(LLVMValueRef Fn, LLVMAttribute PA);
> void LLVMRemoveRetAttr(LLVMValueRef Fn, LLVMAttribute PA);
> LLVMAttribute LLVMGetRetAttr(LLVMValueRef Fn);
> which will do the associated actions on the return value.
> If this is acceptable, I can submit a trivial patch that implements it.

Given that they are indeed completely broken, I suggest filing a bug in 
the Bugzilla to make sure this gets fixed. Remember to attach your patch!

More information about the llvm-dev mailing list