translator: fix reassigment, add tests
This commit is contained in:
@@ -134,9 +134,12 @@ class LLVMBuilder(val arm: Boolean) {
|
||||
}
|
||||
|
||||
fun copyVariableValue(target: LLVMVariable, source: LLVMVariable) {
|
||||
val tmp = getNewVariable(source.type, source.pointer)
|
||||
llvmLocalCode.appendln("$tmp = load ${source.getType()} $source, align ${tmp.type.align}")
|
||||
llvmLocalCode.appendln("store ${target.type} $tmp, ${target.getType()} $target, align ${tmp.type.align}")
|
||||
var from = source
|
||||
if (source.pointer > 0) {
|
||||
from = getNewVariable(source.type, source.pointer)
|
||||
llvmLocalCode.appendln("$from = load ${source.getType()} $source, align ${from.type.align}")
|
||||
}
|
||||
llvmLocalCode.appendln("store ${target.type} $from, ${target.getType()} $target, align ${from.type.align}")
|
||||
}
|
||||
|
||||
fun loadArgument(llvmVariable: LLVMVariable, store: Boolean = true): LLVMVariable {
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
reassigment_0(5) == 6
|
||||
@@ -0,0 +1 @@
|
||||
reassigment_1(5) == 7
|
||||
@@ -0,0 +1,4 @@
|
||||
fun reassigment_0(x: Int): Int {
|
||||
var b = x + 1
|
||||
return b
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fun reassigment_1(x: Int): Int {
|
||||
var a = x
|
||||
a = a + 1
|
||||
var b = a + 1
|
||||
b = b + 1
|
||||
return b
|
||||
}
|
||||
Reference in New Issue
Block a user