use load_roc_value

This commit is contained in:
Folkert 2022-12-17 22:24:41 +01:00
parent 1d260530fb
commit 78e0a4ca6b
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C

View file

@ -392,21 +392,7 @@ fn build_rc_wrapper<'a, 'ctx, 'env>(
let value_ptr = it.next().unwrap().into_pointer_value();
value_ptr.set_name(Symbol::ARG_1.as_str(&env.interns));
let value_type = basic_type_from_layout(env, layout).ptr_type(AddressSpace::Generic);
let value = if layout.is_passed_by_reference(env.layout_interner, env.target_info) {
env.builder
.build_pointer_cast(value_ptr, value_type, "cast_ptr_to_tag_build_rc_wrapper")
.into()
} else {
let value_cast = env
.builder
.build_bitcast(value_ptr, value_type, "load_opaque")
.into_pointer_value();
env.builder.build_load(value_cast, "load_opaque")
};
let value = load_roc_value(env, *layout, value_ptr, "load_opaque");
match rc_operation {
Mode::Inc => {