From 96006e40ce34dcae0cdd3a94b1b329c9ff633831 Mon Sep 17 00:00:00 2001
From: Johannes Stoelp <johannes.stoelp@gmail.com>
Date: Wed, 22 Sep 2021 22:38:41 +0200
Subject: add llvm shutdown to free allocated memory

---
 src/llvm/mod.rs | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

(limited to 'src/llvm')

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();
+    };
+}
-- 
cgit v1.2.3