lemonlang 0.0.3

an experimental, modern, purely safe, programming language.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::report::throw_llvm_error;

use super::Llvm;

impl Llvm<'_> {
	pub fn free_end_of_scope(&mut self) {
		let pointers = self.stack.take_frees();
		let free_fun = self.get_free_fun();

		for (_, pointer) in pointers {
			let temp = self.stack.temp_register();
			#[rustfmt::skip]
			self.builder.build_call(free_fun, &[pointer.into()], &temp)
				.unwrap_or_else(|err| throw_llvm_error(format!("failed to free pointer: {}", err)));
		}
	}
}