diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2016-01-02 20:13:10 -0700 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2016-01-02 20:13:10 -0700 |
| commit | 258bc73eee557ada944c9d25ed85d9baf8035ad7 (patch) | |
| tree | d34d6cca4d4f91a6938ff27fb5eb55c9b7ce1915 /src | |
| parent | 187d00ca835d2c923cbc0a3ab9e861e82888d403 (diff) | |
| download | zig-258bc73eee557ada944c9d25ed85d9baf8035ad7.tar.gz zig-258bc73eee557ada944c9d25ed85d9baf8035ad7.zip | |
fix implicit cast after unreachable bad code gen
Diffstat (limited to 'src')
| -rw-r--r-- | src/codegen.cpp | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp index 63a6e40929..699487a1b7 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -203,21 +203,6 @@ static LLVMValueRef gen_array_ptr(CodeGen *g, AstNode *node) { AstNode *array_expr_node = node->data.array_access_expr.array_ref_expr; LLVMValueRef array_ptr = gen_expr(g, array_expr_node); - /* - if (array_expr_node->type == NodeTypeSymbol) { - VariableTableEntry *var = find_variable(array_expr_node->codegen_node->expr_node.block_context, - &array_expr_node->data.symbol); - assert(var); - - array_ptr = var->value_ref; - } else if (array_expr_node->type == NodeTypeFieldAccessExpr) { - zig_panic("TODO gen array ptr field access expr"); - } else if (array_expr_node->type == NodeTypeArrayAccessExpr) { - zig_panic("TODO gen array ptr array access expr"); - } else { - array_ptr = gen_expr(g, array_expr_node); - } - */ LLVMValueRef subscript_value = gen_expr(g, node->data.array_access_expr.subscript); @@ -1363,6 +1348,9 @@ static LLVMValueRef gen_expr(CodeGen *g, AstNode *node) { { TypeTableEntry *before_type = node->codegen_node->expr_node.type_entry; + if (before_type && before_type->id == TypeTableEntryIdUnreachable) { + return val; + } val = gen_cast_node(g, node, val, before_type, &node->codegen_node->expr_node.implicit_cast); } |
