@@ -93,23 +93,26 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
9393 return ;
9494 }
9595
96- if let OperandValue :: Immediate ( v) = cg_elem. val {
97- let start = dest. val . llval ;
98- let size = bx. const_usize ( dest. layout . size . bytes ( ) ) ;
99-
100- // Use llvm.memset.p0i8.* to initialize all zero arrays
101- if bx. cx ( ) . const_to_opt_u128 ( v, false ) == Some ( 0 ) {
102- let fill = bx. cx ( ) . const_u8 ( 0 ) ;
103- bx. memset ( start, fill, size, dest. val . align , MemFlags :: empty ( ) ) ;
104- return ;
105- }
96+ match cg_elem. val {
97+ OperandValue :: Immediate ( v) => {
98+ let start = dest. val . llval ;
99+ let size = bx. const_usize ( dest. layout . size . bytes ( ) ) ;
100+
101+ // Use llvm.memset.p0i8.* to initialize all zero arrays
102+ if bx. cx ( ) . const_to_opt_u128 ( v, false ) == Some ( 0 ) {
103+ let fill = bx. cx ( ) . const_u8 ( 0 ) ;
104+ bx. memset ( start, fill, size, dest. val . align , MemFlags :: empty ( ) ) ;
105+ return ;
106+ }
106107
107- // Use llvm.memset.p0i8.* to initialize byte arrays
108- let v = bx. from_immediate ( v) ;
109- if bx. cx ( ) . val_ty ( v) == bx. cx ( ) . type_i8 ( ) {
110- bx. memset ( start, v, size, dest. val . align , MemFlags :: empty ( ) ) ;
111- return ;
108+ // Use llvm.memset.p0i8.* to initialize byte arrays
109+ let v = bx. from_immediate ( v) ;
110+ if bx. cx ( ) . val_ty ( v) == bx. cx ( ) . type_i8 ( ) {
111+ bx. memset ( start, v, size, dest. val . align , MemFlags :: empty ( ) ) ;
112+ return ;
113+ }
112114 }
115+ _ => ( ) ,
113116 }
114117
115118 let count = self
0 commit comments