Skip to content

Commit f993237

Browse files
authored
Merge pull request #51 from UnionCompilerDesign/dev
Dev
2 parents 6e3c216 + b696ada commit f993237

File tree

5 files changed

+10
-9
lines changed

5 files changed

+10
-9
lines changed

src/interface.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,5 @@ pub trait LLVMApi {
6767
/// --- VARIABLES --- ///
6868
fn init_var(&mut self, builder: BuilderTag, var_name: &str, data_type: TypeTag, initial_value: Option<ValueTag>) -> Option<ValueTag>;
6969
fn reassign_var(&mut self, builder: BuilderTag, variable_alloc: ValueTag, new_value: ValueTag) -> Option<()>;
70-
fn get_var(&mut self, builder: BuilderTag, variable_type: TypeTag, variable_alloc: ValueTag) -> Option<ValueTag>;
70+
fn get_var(&mut self, builder: BuilderTag, variable_type: TypeTag, variable_alloc: ValueTag, temp_name: &str) -> Option<ValueTag>;
7171
}

src/ir/router.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ impl LLVMApi for SafeLLVM {
215215
self.pools.reassign_var(builder, variable_alloc, new_value)
216216
}
217217

218-
fn get_var(&mut self, builder: BuilderTag, variable_type: TypeTag, variable_alloc: ValueTag) -> Option<ValueTag> {
219-
self.pools.get_var(builder, variable_type, variable_alloc)
218+
fn get_var(&mut self, builder: BuilderTag, variable_type: TypeTag, variable_alloc: ValueTag, temp_name: &str) -> Option<ValueTag> {
219+
self.pools.get_var(builder, variable_type, variable_alloc, temp_name)
220220
}
221221
}

src/ir/var.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,14 @@ impl ResourcePools {
120120
&mut self,
121121
builder_tag: BuilderTag,
122122
variable_type_tag: TypeTag,
123-
variable_alloc_tag: ValueTag
123+
variable_alloc_tag: ValueTag,
124+
temp_name: &str
124125
) -> Option<ValueTag> {
125126
let builder_arc_rwlock = self.get_builder(builder_tag)?;
126127
let variable_type_arc_rwlock = self.get_type(variable_type_tag)?;
127128
let variable_alloc_arc_rwlock = self.get_value(variable_alloc_tag)?;
128129

129-
let tmp_load_cstr = CString::new("tmpload").expect("Failed to create CString for tmpload");
130+
let tmp_load_cstr = CString::new(temp_name).expect("Failed to create CString for tmpload");
130131

131132
let raw_ptr = unsafe {
132133
let builder_ptr = builder_arc_rwlock.read().expect("Failed to lock builder for reading").read(LLVMRefType::Builder, |builder_ref| {

src/router.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ impl LLVMApi for SafeLLVM {
219219
self.ir_codegen_impl.reassign_var(builder, variable_alloc, new_value)
220220
}
221221

222-
fn get_var(&mut self, builder: BuilderTag, variable_type: TypeTag, variable_alloc: ValueTag) -> Option<ValueTag> {
223-
self.ir_codegen_impl.get_var(builder, variable_type, variable_alloc)
222+
fn get_var(&mut self, builder: BuilderTag, variable_type: TypeTag, variable_alloc: ValueTag, temp_name: &str) -> Option<ValueTag> {
223+
self.ir_codegen_impl.get_var(builder, variable_type, variable_alloc, temp_name)
224224
}
225225
}

tests/ir_tests/var_tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ fn test_reassign_var() {
4040
let new_value_tag = resource_pools.create_integer(context_tag, 100).expect("Failed to create new value");
4141
resource_pools.reassign_var(builder_tag, var_tag, new_value_tag).expect("Variable reassignment failed");
4242

43-
assert!(resource_pools.get_var(builder_tag, int_type_tag, var_tag).is_some(), "Variable should be reassigned successfully");
43+
assert!(resource_pools.get_var(builder_tag, int_type_tag, var_tag, "tmp").is_some(), "Variable should be reassigned successfully");
4444
}
4545

4646

@@ -60,7 +60,7 @@ fn test_get_var() {
6060
resource_pools.position_builder(builder_tag, block_tag).expect("Failed to position builder");
6161

6262
let var_tag = resource_pools.init_var(builder_tag, "myVar", int_type_tag, Some(initial_value_tag)).expect("Variable should be initialized successfully");
63-
let retrieved_var_tag = resource_pools.get_var(builder_tag, int_type_tag, var_tag);
63+
let retrieved_var_tag = resource_pools.get_var(builder_tag, int_type_tag, var_tag, "tmp");
6464

6565
assert!(retrieved_var_tag.is_some(), "Variable should be retrieved successfully");
6666
}

0 commit comments

Comments
 (0)