aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-12-22 00:46:17 -0500
committerAndrew Kelley <superjoe30@gmail.com>2016-12-22 00:46:17 -0500
commit46033a2128b09ed15f38f6ed2602bf80989a770f (patch)
tree6a5e2df1c15ac9fd6f48181adb12e150d98d63be /src
parent23bebdbcd51ac426f829713ce278b86ccaeb97f4 (diff)
downloadzig-46033a2128b09ed15f38f6ed2602bf80989a770f.tar.gz
zig-46033a2128b09ed15f38f6ed2602bf80989a770f.zip
pass void parameters test
Diffstat (limited to 'src')
-rw-r--r--src/analyze.cpp5
-rw-r--r--src/codegen.cpp3
2 files changed, 7 insertions, 1 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index f374920709..1c4fc8e69d 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -2234,7 +2234,10 @@ static void analyze_fn_body(CodeGen *g, FnTableEntry *fn_table_entry) {
VariableTableEntry *var = add_variable(g, param_decl_node, fn_table_entry->child_scope, param_decl->name, param_type, true, nullptr);
var->src_arg_index = i;
fn_table_entry->child_scope = var->child_scope;
- fn_table_entry->variable_list.append(var);
+
+ if (type_has_bits(param_type)) {
+ fn_table_entry->variable_list.append(var);
+ }
if (fn_type->data.fn.gen_param_info) {
var->gen_arg_index = fn_type->data.fn.gen_param_info[i].gen_index;
diff --git a/src/codegen.cpp b/src/codegen.cpp
index 49a6f4739b..b28b370f9a 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -1650,6 +1650,9 @@ static LLVMValueRef ir_render_switch_br(CodeGen *g, IrExecutable *executable, Ir
}
static LLVMValueRef ir_render_phi(CodeGen *g, IrExecutable *executable, IrInstructionPhi *instruction) {
+ if (!type_has_bits(instruction->base.type_entry))
+ return nullptr;
+
LLVMTypeRef phi_type;
if (handle_is_ptr(instruction->base.type_entry)) {
phi_type = LLVMPointerType(instruction->base.type_entry->type_ref, 0);