aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/llvm/mod.rs9
-rw-r--r--src/main.rs2
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();
}