LLVMValueRef target,
LLVMValueRef old,
LLVMValueRef source,
- AtomicOrdering order) {
+ AtomicOrdering order,
+ AtomicOrdering failure_order) {
return wrap(unwrap(B)->CreateAtomicCmpXchg(unwrap(target), unwrap(old),
- unwrap(source), order));
+ unwrap(source), order
+#if LLVM_VERSION_MINOR >= 5
+ , failure_order
+#endif
+ ));
}
extern "C" LLVMValueRef LLVMBuildAtomicFence(LLVMBuilderRef B, AtomicOrdering order) {
return wrap(unwrap(B)->CreateFence(order));
RunTimeLang,
unwrapDI<DIType>(VTableHolder)
#if LLVM_VERSION_MINOR >= 5
- ,UniqueId));
-#else
- ));
+ ,UniqueId
#endif
+ ));
}
extern "C" LLVMValueRef LLVMDIBuilderCreateMemberType(
LLVMValueRef Scope,
LLVMValueRef File,
unsigned Line,
- unsigned Col) {
+ unsigned Col,
+ unsigned Discriminator) {
return wrap(Builder->createLexicalBlock(
unwrapDI<DIDescriptor>(Scope),
- unwrapDI<DIFile>(File), Line, Col));
+ unwrapDI<DIFile>(File), Line, Col
+#if LLVM_VERSION_MINOR >= 5
+ , Discriminator
+#endif
+ ));
}
extern "C" LLVMValueRef LLVMDIBuilderCreateStaticVariable(
unwrapDI<DIArray>(Elements),
RunTimeLang
#if LLVM_VERSION_MINOR >= 5
- ,UniqueId));
-#else
- ));
+ ,UniqueId
#endif
+ ));
}
+#if LLVM_VERSION_MINOR < 5
extern "C" void LLVMSetUnnamedAddr(LLVMValueRef Value, LLVMBool Unnamed) {
unwrap<GlobalValue>(Value)->setUnnamedAddr(Unnamed);
}
+#endif
extern "C" LLVMValueRef LLVMDIBuilderCreateTemplateTypeParameter(
DIBuilderRef Builder,
}
#endif
+#if LLVM_VERSION_MINOR >= 5
+extern "C" void*
+LLVMRustOpenArchive(char *path) {
+ std::unique_ptr<MemoryBuffer> buf;
+ error_code err = MemoryBuffer::getFile(path, buf);
+ if (err) {
+ LLVMRustError = err.message().c_str();
+ return NULL;
+ }
+ Archive *ret = new Archive(buf.release(), err);
+ if (err) {
+ LLVMRustError = err.message().c_str();
+ return NULL;
+ }
+ return ret;
+}
+#else
extern "C" void*
LLVMRustOpenArchive(char *path) {
OwningPtr<MemoryBuffer> buf;
}
return ret;
}
+#endif
extern "C" const char*
LLVMRustArchiveReadSection(Archive *ar, char *name, size_t *size) {