@@ -18,7 +18,7 @@ use rustc_middle::ty::layout::{FnAbiOf, HasTyCtxt, LayoutOf};
1818use rustc_middle:: ty:: { self , GenericArgsRef , Ty } ;
1919use rustc_middle:: { bug, span_bug} ;
2020use rustc_span:: { sym, Span , Symbol } ;
21- use rustc_target:: abi:: { self , Align , HasDataLayout , Primitive } ;
21+ use rustc_target:: abi:: { self , Align , HasDataLayout , Primitive , Size } ;
2222use rustc_target:: spec:: { HasTargetSpec , PanicStrategy } ;
2323
2424use std:: cmp:: Ordering ;
@@ -635,8 +635,9 @@ fn codegen_msvc_try<'ll>(
635635 // }
636636 //
637637 // More information can be found in libstd's seh.rs implementation.
638+ let ptr_size = bx. tcx ( ) . data_layout . pointer_size ;
638639 let ptr_align = bx. tcx ( ) . data_layout . pointer_align . abi ;
639- let slot = bx. alloca ( bx . type_ptr ( ) , ptr_align) ;
640+ let slot = bx. alloca ( ptr_size , ptr_align) ;
640641 let try_func_ty = bx. type_func ( & [ bx. type_ptr ( ) ] , bx. type_void ( ) ) ;
641642 bx. invoke ( try_func_ty, None , None , try_func, & [ data] , normal, catchswitch, None ) ;
642643
@@ -909,7 +910,7 @@ fn codegen_emcc_try<'ll>(
909910 let ptr_align = bx. tcx ( ) . data_layout . pointer_align . abi ;
910911 let i8_align = bx. tcx ( ) . data_layout . i8_align . abi ;
911912 let catch_data_type = bx. type_struct ( & [ bx. type_ptr ( ) , bx. type_bool ( ) ] , false ) ;
912- let catch_data = bx. alloca ( catch_data_type, ptr_align) ;
913+ let catch_data = bx. typed_alloca ( catch_data_type, ptr_align) ;
913914 let catch_data_0 =
914915 bx. inbounds_gep ( catch_data_type, catch_data, & [ bx. const_usize ( 0 ) , bx. const_usize ( 0 ) ] ) ;
915916 bx. store ( ptr, catch_data_0, ptr_align) ;
@@ -1360,7 +1361,7 @@ fn generic_simd_intrinsic<'ll, 'tcx>(
13601361 let ze = bx. zext ( i_, bx. type_ix ( expected_bytes * 8 ) ) ;
13611362
13621363 // Convert the integer to a byte array
1363- let ptr = bx. alloca ( bx . type_ix ( expected_bytes * 8 ) , Align :: ONE ) ;
1364+ let ptr = bx. alloca ( Size :: from_bytes ( expected_bytes) , Align :: ONE ) ;
13641365 bx. store ( ze, ptr, Align :: ONE ) ;
13651366 let array_ty = bx. type_array ( bx. type_i8 ( ) , expected_bytes) ;
13661367 return Ok ( bx. load ( array_ty, ptr, Align :: ONE ) ) ;
0 commit comments