rustc_codegen_llvm: use safe references for ThinLTOBuffer.

This commit is contained in:
Irina Popa 2018-07-17 16:31:09 +03:00
parent ab4f93c742
commit 2e3a6af7fa
2 changed files with 6 additions and 6 deletions

View File

@ -579,7 +579,7 @@ impl Drop for ThinData {
}
}
pub struct ThinBuffer(*mut llvm::ThinLTOBuffer);
pub struct ThinBuffer(&'static mut llvm::ThinLTOBuffer);
unsafe impl Send for ThinBuffer {}
unsafe impl Sync for ThinBuffer {}
@ -604,7 +604,7 @@ impl ThinBuffer {
impl Drop for ThinBuffer {
fn drop(&mut self) {
unsafe {
llvm::LLVMRustThinLTOBufferFree(self.0);
llvm::LLVMRustThinLTOBufferFree(&mut *(self.0 as *mut _));
}
}
}

View File

@ -1571,10 +1571,10 @@ extern "C" {
pub fn LLVMRustThinLTOAvailable() -> bool;
pub fn LLVMRustPGOAvailable() -> bool;
pub fn LLVMRustThinLTOBufferCreate(M: &Module) -> *mut ThinLTOBuffer;
pub fn LLVMRustThinLTOBufferFree(M: *mut ThinLTOBuffer);
pub fn LLVMRustThinLTOBufferPtr(M: *const ThinLTOBuffer) -> *const c_char;
pub fn LLVMRustThinLTOBufferLen(M: *const ThinLTOBuffer) -> size_t;
pub fn LLVMRustThinLTOBufferCreate(M: &Module) -> &'static mut ThinLTOBuffer;
pub fn LLVMRustThinLTOBufferFree(M: &'static mut ThinLTOBuffer);
pub fn LLVMRustThinLTOBufferPtr(M: &ThinLTOBuffer) -> *const c_char;
pub fn LLVMRustThinLTOBufferLen(M: &ThinLTOBuffer) -> size_t;
pub fn LLVMRustCreateThinLTOData(
Modules: *const ThinLTOModule,
NumModules: c_uint,