Skip to content

Commit b2e0db9

Browse files
committed
Directly return loaded value from type_checked_load
1 parent fff6296 commit b2e0db9

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

compiler/rustc_codegen_llvm/src/intrinsic.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,9 @@ impl<'ll, 'tcx> IntrinsicCallMethods<'tcx> for Builder<'_, 'll, 'tcx> {
424424
typeid: &'ll Value,
425425
) -> Self::Value {
426426
let vtable_byte_offset = self.const_i32(vtable_byte_offset as i32);
427-
self.call_intrinsic("llvm.type.checked.load", &[llvtable, vtable_byte_offset, typeid])
427+
let type_checked_load =
428+
self.call_intrinsic("llvm.type.checked.load", &[llvtable, vtable_byte_offset, typeid]);
429+
self.extract_value(type_checked_load, 0)
428430
}
429431

430432
fn va_start(&mut self, va_list: &'ll Value) -> &'ll Value {

compiler/rustc_codegen_ssa/src/meth.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ impl<'a, 'tcx> VirtualIndex {
3131
let typeid =
3232
bx.typeid_metadata(typeid_for_trait_ref(bx.tcx(), expect_dyn_trait_in_self(ty)));
3333
let vtable_byte_offset = self.0 * bx.data_layout().pointer_size.bytes();
34-
let type_checked_load = bx.type_checked_load(llvtable, vtable_byte_offset, typeid);
35-
let func = bx.extract_value(type_checked_load, 0);
34+
let func = bx.type_checked_load(llvtable, vtable_byte_offset, typeid);
3635
bx.pointercast(func, llty)
3736
} else {
3837
let ptr_align = bx.tcx().data_layout.pointer_align.abi;

0 commit comments

Comments
 (0)