/// <inheritdoc/> public override BlockCodegen Emit(BasicBlockBuilder BasicBlock) { var ptrResult = BaseAddress.Emit(BasicBlock); BasicBlock = ptrResult.BasicBlock; var indexVals = new LLVMValueRef[Indices.Count]; for (int i = 0; i < indexVals.Length; i++) { var indexResult = Indices[i].Emit(BasicBlock); BasicBlock = indexResult.BasicBlock; indexVals[i] = indexResult.Value; } return(new BlockCodegen( BasicBlock, BuildGEP(BasicBlock.Builder, ptrResult.Value, indexVals, "gep_tmp"))); }