From 889e1b9731615a6b03b0e46662edb70c6ca7e7ad Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Mon, 9 Sep 2013 02:32:30 -0400 Subject: add `noalias` attribute to ~ return values --- src/rustllvm/RustWrapper.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/rustllvm/RustWrapper.cpp') diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 376adf24e25..226a7c34304 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -350,6 +350,21 @@ extern "C" void LLVMAddFunctionAttrString(LLVMValueRef fn, const char *Name) { unwrap(fn)->addFnAttr(Name); } + +extern "C" void LLVMAddReturnAttribute(LLVMValueRef Fn, LLVMAttribute PA) { + Function *A = unwrap(Fn); + AttrBuilder B(PA); + A->addAttributes(AttributeSet::ReturnIndex, + AttributeSet::get(A->getContext(), AttributeSet::ReturnIndex, B)); +} + +extern "C" void LLVMRemoveReturnAttribute(LLVMValueRef Fn, LLVMAttribute PA) { + Function *A = unwrap(Fn); + AttrBuilder B(PA); + A->removeAttributes(AttributeSet::ReturnIndex, + AttributeSet::get(A->getContext(), AttributeSet::ReturnIndex, B)); +} + extern "C" LLVMValueRef LLVMBuildAtomicLoad(LLVMBuilderRef B, LLVMValueRef source, const char* Name, -- cgit 1.4.1-3-g733a5