Skip to content

Commit fdeb8b0

Browse files
committed
codegen: handle dead code with unsafe_store of FCA pointers
Fix #50125
1 parent 834aad4 commit fdeb8b0

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/intrinsics.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -675,7 +675,7 @@ static jl_cgval_t emit_pointerref(jl_codectx_t &ctx, jl_cgval_t *argv)
675675
ai.decorateInst(load);
676676
return mark_julia_type(ctx, load, true, ety);
677677
}
678-
else if (!jl_isbits(ety)) {
678+
else if (!deserves_stack(ety)) {
679679
assert(jl_is_datatype(ety));
680680
uint64_t size = jl_datatype_size(ety);
681681
Value *strct = emit_allocobj(ctx, (jl_datatype_t*)ety);
@@ -747,7 +747,7 @@ static jl_cgval_t emit_pointerset(jl_codectx_t &ctx, jl_cgval_t *argv)
747747
jl_aliasinfo_t ai = jl_aliasinfo_t::fromTBAA(ctx, ctx.tbaa().tbaa_data);
748748
ai.decorateInst(store);
749749
}
750-
else if (!jl_isbits(ety)) {
750+
else if (x.ispointer()) {
751751
thePtr = emit_unbox(ctx, getInt8PtrTy(ctx.builder.getContext()), e, e.typ);
752752
uint64_t size = jl_datatype_size(ety);
753753
im1 = ctx.builder.CreateMul(im1, ConstantInt::get(ctx.types().T_size,

0 commit comments

Comments
 (0)