fix number literal implicit cast

This commit is contained in:
Andrew Kelley
2016-01-24 14:51:47 -07:00
parent 5c18826240
commit ca7b85b32e
2 changed files with 43 additions and 24 deletions

View File

@@ -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");
}
}