about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/back
diff options
context:
space:
mode:
authorIrina Popa <irinagpopa@gmail.com>2018-07-17 14:26:22 +0300
committerIrina Popa <irinagpopa@gmail.com>2018-07-30 20:10:41 +0300
commit894467e5b4fd7c355f24c680a612ba810d1b4e8d (patch)
tree782ed363ba6e07cf68e7f6f2e378a349b937eda6 /src/librustc_codegen_llvm/back
parent2c1d7fbb8373321d043f4658f310c0b869124cdc (diff)
downloadrust-894467e5b4fd7c355f24c680a612ba810d1b4e8d.tar.gz
rust-894467e5b4fd7c355f24c680a612ba810d1b4e8d.zip
rustc_codegen_llvm: use safe references for Linker.
Diffstat (limited to 'src/librustc_codegen_llvm/back')
-rw-r--r--src/librustc_codegen_llvm/back/lto.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/librustc_codegen_llvm/back/lto.rs b/src/librustc_codegen_llvm/back/lto.rs
index 0a8b143ae92..d5d21eb91ec 100644
--- a/src/librustc_codegen_llvm/back/lto.rs
+++ b/src/librustc_codegen_llvm/back/lto.rs
@@ -294,10 +294,10 @@ fn fat_lto(cgcx: &CodegenContext,
     }])
 }
 
-struct Linker(llvm::LinkerRef);
+struct Linker<'a>(&'a mut llvm::Linker<'a>);
 
-impl Linker {
-    fn new(llmod: &llvm::Module) -> Linker {
+impl Linker<'a> {
+    fn new(llmod: &'a llvm::Module) -> Self {
         unsafe { Linker(llvm::LLVMRustLinkerNew(llmod)) }
     }
 
@@ -314,9 +314,9 @@ impl Linker {
     }
 }
 
-impl Drop for Linker {
+impl Drop for Linker<'a> {
     fn drop(&mut self) {
-        unsafe { llvm::LLVMRustLinkerFree(self.0); }
+        unsafe { llvm::LLVMRustLinkerFree(&mut *(self.0 as *mut _)); }
     }
 }