1
Fork 0

Avoid over-aligning the return value in the -Cpanic=abort case

This commit is contained in:
Mark Rousskov 2019-12-26 10:03:41 -05:00 committed by Amanieu d'Antras
parent d45ce5aed6
commit 1920f817ca

View file

@ -858,8 +858,10 @@ fn try_intrinsic(
) { ) {
if bx.sess().no_landing_pads() { if bx.sess().no_landing_pads() {
bx.call(func, &[data], None); bx.call(func, &[data], None);
let ptr_align = bx.tcx().data_layout.pointer_align.abi; // Return 0 unconditionally from the intrinsic call;
bx.store(bx.const_null(bx.type_i8p()), dest, ptr_align); // we can never unwind.
let ret_align = bx.tcx().data_layout.i32_align.abi;
bx.store(bx.const_i32(0), dest, ret_align);
} else if wants_msvc_seh(bx.sess()) { } else if wants_msvc_seh(bx.sess()) {
codegen_msvc_try(bx, func, data, local_ptr, dest); codegen_msvc_try(bx, func, data, local_ptr, dest);
} else { } else {