From ca7b85b32e26acfd716c02047966254a34cd2237 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 24 Jan 2016 14:51:47 -0700 Subject: fix number literal implicit cast --- src/codegen.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'src/codegen.cpp') diff --git a/src/codegen.cpp b/src/codegen.cpp index be96fe1b9f..10395dd892 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -1239,14 +1239,20 @@ static LLVMValueRef gen_bin_op_expr(CodeGen *g, AstNode *node) { static LLVMValueRef gen_return_expr(CodeGen *g, AstNode *node) { assert(node->type == NodeTypeReturnExpr); AstNode *param_node = node->data.return_expr.expr; - if (param_node) { - LLVMValueRef value = gen_expr(g, param_node); + assert(param_node); - add_debug_source_node(g, node); - return LLVMBuildRet(g->builder, value); - } else { - add_debug_source_node(g, node); - return LLVMBuildRetVoid(g->builder); + switch (node->data.return_expr.kind) { + case ReturnKindUnconditional: + { + LLVMValueRef value = gen_expr(g, param_node); + + add_debug_source_node(g, node); + return LLVMBuildRet(g->builder, value); + } + case ReturnKindError: + zig_panic("TODO"); + case ReturnKindMaybe: + zig_panic("TODO"); } } -- cgit v1.2.3