about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp15
1 files changed, 15 insertions, 0 deletions
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<Function>(fn)->addFnAttr(Name);
 }
 
+
+extern "C" void LLVMAddReturnAttribute(LLVMValueRef Fn, LLVMAttribute PA) {
+  Function *A = unwrap<Function>(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<Function>(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,