pub use self::Visibility::*;
pub use self::DiagnosticSeverity::*;
pub use self::Linkage::*;
+pub use self::DLLStorageClassTypes::*;
use std::ffi::CString;
use std::cell::RefCell;
Note,
}
+
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub enum DLLStorageClassTypes {
+ DefaultStorageClass = 0,
+ DLLImportStorageClass = 1,
+ DLLExportStorageClass = 2,
+}
+
bitflags! {
flags Attribute : u32 {
const ZExt = 1 << 0,
pub fn LLVMRustArchiveIteratorFree(AIR: ArchiveIteratorRef);
pub fn LLVMRustDestroyArchive(AR: ArchiveRef);
- pub fn LLVMRustSetDLLExportStorageClass(V: ValueRef);
+ pub fn LLVMRustSetDLLStorageClass(V: ValueRef,
+ C: DLLStorageClassTypes);
pub fn LLVMRustGetSectionName(SI: SectionIteratorRef,
data: *mut *const c_char) -> c_int;
}
}
+pub fn SetDLLStorageClass(global: ValueRef, class: DLLStorageClassTypes) {
+ unsafe {
+ LLVMRustSetDLLStorageClass(global, class);
+ }
+}
+
pub fn SetUnnamedAddr(global: ValueRef, unnamed: bool) {
unsafe {
LLVMSetUnnamedAddr(global, unnamed as Bool);
}
extern "C" void
-LLVMRustSetDLLExportStorageClass(LLVMValueRef Value) {
+LLVMRustSetDLLStorageClass(LLVMValueRef Value,
+ GlobalValue::DLLStorageClassTypes Class) {
GlobalValue *V = unwrap<GlobalValue>(Value);
- V->setDLLStorageClass(GlobalValue::DLLExportStorageClass);
+ V->setDLLStorageClass(Class);
}
// Note that the two following functions look quite similar to the