diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2016-01-24 14:51:47 -0700 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2016-01-24 14:51:47 -0700 |
| commit | ca7b85b32e26acfd716c02047966254a34cd2237 (patch) | |
| tree | 85457f08b9cd94e9fb23e73240a7a6a79478e325 /src/codegen.cpp | |
| parent | 5c18826240fe983a30a9de6e04d3848643db7cf6 (diff) | |
| download | zig-ca7b85b32e26acfd716c02047966254a34cd2237.tar.gz zig-ca7b85b32e26acfd716c02047966254a34cd2237.zip | |
fix number literal implicit cast
Diffstat (limited to 'src/codegen.cpp')
| -rw-r--r-- | src/codegen.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
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"); } } |
