rustc_codegen_llvm: use safe references for ModuleBuffer.
This commit is contained in:
parent
b643e5144e
commit
ab4f93c742
|
@ -527,7 +527,7 @@ impl SerializedModule {
|
|||
}
|
||||
}
|
||||
|
||||
pub struct ModuleBuffer(*mut llvm::ModuleBuffer);
|
||||
pub struct ModuleBuffer(&'static mut llvm::ModuleBuffer);
|
||||
|
||||
unsafe impl Send for ModuleBuffer {}
|
||||
unsafe impl Sync for ModuleBuffer {}
|
||||
|
@ -550,7 +550,7 @@ impl ModuleBuffer {
|
|||
|
||||
impl Drop for ModuleBuffer {
|
||||
fn drop(&mut self) {
|
||||
unsafe { llvm::LLVMRustModuleBufferFree(self.0); }
|
||||
unsafe { llvm::LLVMRustModuleBufferFree(&mut *(self.0 as *mut _)); }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1563,10 +1563,10 @@ extern "C" {
|
|||
pub fn LLVMRustSetComdat(M: &'a Module, V: &'a Value, Name: *const c_char);
|
||||
pub fn LLVMRustUnsetComdat(V: &Value);
|
||||
pub fn LLVMRustSetModulePIELevel(M: &Module);
|
||||
pub fn LLVMRustModuleBufferCreate(M: &Module) -> *mut ModuleBuffer;
|
||||
pub fn LLVMRustModuleBufferPtr(p: *const ModuleBuffer) -> *const u8;
|
||||
pub fn LLVMRustModuleBufferLen(p: *const ModuleBuffer) -> usize;
|
||||
pub fn LLVMRustModuleBufferFree(p: *mut ModuleBuffer);
|
||||
pub fn LLVMRustModuleBufferCreate(M: &Module) -> &'static mut ModuleBuffer;
|
||||
pub fn LLVMRustModuleBufferPtr(p: &ModuleBuffer) -> *const u8;
|
||||
pub fn LLVMRustModuleBufferLen(p: &ModuleBuffer) -> usize;
|
||||
pub fn LLVMRustModuleBufferFree(p: &'static mut ModuleBuffer);
|
||||
pub fn LLVMRustModuleCost(M: &Module) -> u64;
|
||||
|
||||
pub fn LLVMRustThinLTOAvailable() -> bool;
|
||||
|
|
Loading…
Reference in a new issue