@@ -132,15 +132,17 @@ impl<'bcx, 'tcx> MirContext<'bcx, 'tcx> {
132
132
mir:: ProjectionElem :: Index ( ref index) => {
133
133
let index = self . trans_operand ( bcx, index) ;
134
134
let llindex = self . prepare_index ( bcx, index. immediate ( ) ) ;
135
- ( build:: InBoundsGEP ( bcx, tr_base. llval , & [ llindex] ) ,
135
+ let zero = common:: C_uint ( bcx. ccx ( ) , 0u64 ) ;
136
+ ( build:: InBoundsGEP ( bcx, tr_base. llval , & [ zero, llindex] ) ,
136
137
ptr:: null_mut ( ) )
137
138
}
138
139
mir:: ProjectionElem :: ConstantIndex { offset,
139
140
from_end : false ,
140
141
min_length : _ } => {
141
142
let lloffset = common:: C_u32 ( bcx. ccx ( ) , offset) ;
142
143
let llindex = self . prepare_index ( bcx, lloffset) ;
143
- ( build:: InBoundsGEP ( bcx, tr_base. llval , & [ llindex] ) ,
144
+ let zero = common:: C_uint ( bcx. ccx ( ) , 0u64 ) ;
145
+ ( build:: InBoundsGEP ( bcx, tr_base. llval , & [ zero, llindex] ) ,
144
146
ptr:: null_mut ( ) )
145
147
}
146
148
mir:: ProjectionElem :: ConstantIndex { offset,
@@ -150,7 +152,8 @@ impl<'bcx, 'tcx> MirContext<'bcx, 'tcx> {
150
152
let lllen = self . lvalue_len ( bcx, tr_base) ;
151
153
let llindex = build:: Sub ( bcx, lllen, lloffset, DebugLoc :: None ) ;
152
154
let llindex = self . prepare_index ( bcx, llindex) ;
153
- ( build:: InBoundsGEP ( bcx, tr_base. llval , & [ llindex] ) ,
155
+ let zero = common:: C_uint ( bcx. ccx ( ) , 0u64 ) ;
156
+ ( build:: InBoundsGEP ( bcx, tr_base. llval , & [ zero, llindex] ) ,
154
157
ptr:: null_mut ( ) )
155
158
}
156
159
mir:: ProjectionElem :: Downcast ( ..) => {
0 commit comments