From c39bc80393bbc094e620359ee6f06bfbbccef7b3 Mon Sep 17 00:00:00 2001 From: e5l Date: Tue, 16 Aug 2016 12:00:18 +0300 Subject: [PATCH] src/main/kotlin/DefaultArguments.kt --- .../main/kotlin/org/kotlinnative/translator/BlockCodegen.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt b/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt index 378de964773..e20bb6513a5 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt @@ -65,6 +65,7 @@ abstract class BlockCodegen(val state: TranslationState, val variableManager: Va is KtCallExpression -> evaluateCallExpression(expr, scopeDepth) is KtDoWhileExpression -> evaluateDoWhileExpression(expr.firstChild, scopeDepth + 1) is KtDotQualifiedExpression -> evaluateDotExpression(expr, scopeDepth) + is KtWhenExpression -> evaluateWhenExpression(expr, scopeDepth) is PsiElement -> evaluateExpression(expr.firstChild, scopeDepth + 1) null -> { variableManager.pullUpwardsLevel(scopeDepth) @@ -868,7 +869,10 @@ abstract class BlockCodegen(val state: TranslationState, val variableManager: Va val targetExpression = evaluateExpression(whenExpression, scopeDepth + 1)!! val resultVariable = codeBuilder.getNewVariable(expressionType, pointer = 1) - codeBuilder.allocStackPointedVarAsValue(resultVariable) + + if (expressionType !is LLVMVoidType) { + codeBuilder.allocStackPointedVarAsValue(resultVariable) + } var nextLabel = codeBuilder.getNewLabel(prefix = "when_start") val endLabel = codeBuilder.getNewLabel(prefix = "when_end")