diff --git a/translator/src/main/kotlin/main.kt b/translator/src/main/kotlin/main.kt index 31356ea1e8f..5e8273d5a8e 100644 --- a/translator/src/main/kotlin/main.kt +++ b/translator/src/main/kotlin/main.kt @@ -14,12 +14,12 @@ fun main(args: Array) { val analyzedFiles = ArrayList(); - val kotlib = ClassLoader.getSystemClassLoader().getResources("kotlib/kotlin") - for (resourse in kotlib) { - for (app in File(resourse.toURI()).listFiles()) { - analyzedFiles.add(app.absoluteFile.toString()) - } - } +// val kotlib = ClassLoader.getSystemClassLoader().getResources("kotlib/kotlin") +// for (resourse in kotlib) { +// for (app in File(resourse.toURI()).listFiles()) { +// analyzedFiles.add(app.absoluteFile.toString()) +// } +// } analyzedFiles.addAll(args.toList()) diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt b/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt index addcd838687..5bdf03e5ae8 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt @@ -174,14 +174,16 @@ abstract class BlockCodegen(open val state: TranslationState, open val variableM codeBuilder.addLLVMCode(LLVMCall(LLVMVoidType(), function.toString(), names).toString()) } is LLVMReferenceType -> { - val result = codeBuilder.getNewVariable(returnType, pointer = 1) - codeBuilder.allocStaticVar(result) + val returnVar = codeBuilder.getNewVariable(returnType, pointer = 1) + codeBuilder.allocStaticVar(returnVar) + returnVar.pointer++ val args = ArrayList() - args.add(result) + args.add(returnVar) args.addAll(names) codeBuilder.addLLVMCode(LLVMCall(LLVMVoidType(), function.toString(), args).toString()) + var result = codeBuilder.loadAndGetVariable(returnVar) return result } diff --git a/translator/src/test/kotlin/tests/input/simple_class_2.txt b/translator/src/test/kotlin/tests/input/simple_class_2.txt index 8d750f972b4..8d644e44603 100644 --- a/translator/src/test/kotlin/tests/input/simple_class_2.txt +++ b/translator/src/test/kotlin/tests/input/simple_class_2.txt @@ -1,2 +1,3 @@ change(0) == 1 change(1) == 2 +testGen(10) == 10 diff --git a/translator/src/test/kotlin/tests/kotlin/simple_class_2.kt b/translator/src/test/kotlin/tests/kotlin/simple_class_2.kt index 8679e54c039..6856ff4a655 100644 --- a/translator/src/test/kotlin/tests/kotlin/simple_class_2.kt +++ b/translator/src/test/kotlin/tests/kotlin/simple_class_2.kt @@ -1,6 +1,10 @@ class MyClass(val b: Int, var c: Int) +fun genMyClass(i: Int): MyClass { + return MyClass(i, i) +} + fun change(x: Int): Int { val y = MyClass(x, x) @@ -11,3 +15,8 @@ fun change(x: Int): Int { return y.c } + +fun testGen(i: Int): Int { + val j = genMyClass(i) + return j.b +}