From fa903fb4df3024fe7878c34adff1d96c0ffa3d93 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 6 Aug 2020 00:09:36 +0100 Subject: Fix #674 --- src/ir.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/ir.cpp') diff --git a/src/ir.cpp b/src/ir.cpp index 1a5b2347c..2b3b3e14f 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -3333,6 +3333,13 @@ irValue *ir_emit_call(irProcedure *p, irValue *value, Array const &ar irValue *xx = ir_emit_struct_ev(p, x, cast(i32)j); array_add(&processed_args, xx); } + } else { + if (type_size_of(new_type) == type_size_of(original_type)) { + irValue *x = ir_emit_transmute(p, args[i], new_type); + array_add(&processed_args, x); + } else { + GB_PANIC("ABI ERROR: %s %s %s\n", type_to_string(original_type), type_to_string(new_type), type_to_string(arg_type)); + } } } else { irValue *x = ir_emit_conv(p, args[i], new_type); @@ -6855,10 +6862,6 @@ u64 ir_generate_source_code_location_hash(TokenPos pos) { } irValue *ir_emit_source_code_location(irProcedure *proc, String procedure, TokenPos pos) { - if (pos.file == "") { - gb_printf_err("here\n"); - } - gbAllocator a = ir_allocator(); irValue *v = ir_alloc_value(irValue_SourceCodeLocation); v->SourceCodeLocation.file = ir_find_or_add_entity_string(proc->module, pos.file); -- cgit v1.2.3