diff options
-rw-r--r-- | src/llvm/mod.rs | 9 | ||||
-rw-r--r-- | src/main.rs | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/llvm/mod.rs b/src/llvm/mod.rs index f3e54a8..01ed3f2 100644 --- a/src/llvm/mod.rs +++ b/src/llvm/mod.rs @@ -8,7 +8,7 @@ //! For the scope of this tutorial we mainly use assertions to validate the results from the LLVM //! API calls. -use llvm_sys::prelude::LLVMBasicBlockRef; +use llvm_sys::{core::LLVMShutdown, prelude::LLVMBasicBlockRef}; use std::marker::PhantomData; @@ -27,3 +27,10 @@ pub use value::{FnValue, Value}; /// Wrapper for a LLVM Basic Block. #[derive(Copy, Clone)] pub struct BasicBlock<'llvm>(LLVMBasicBlockRef, PhantomData<&'llvm ()>); + +/// Deallocate and destroy all "ManagedStatic" variables. +pub fn shutdown() { + unsafe { + LLVMShutdown(); + }; +} diff --git a/src/main.rs b/src/main.rs index 7160e04..be3dede 100644 --- a/src/main.rs +++ b/src/main.rs @@ -98,4 +98,6 @@ fn main() { // Dump all the emitted LLVM IR to stdout. module.dump(); + + llvm::shutdown(); } |