summaryrefslogtreecommitdiff
path: root/libgfortran/generated
diff options
context:
space:
mode:
Diffstat (limited to 'libgfortran/generated')
-rw-r--r--libgfortran/generated/all_l1.c24
-rw-r--r--libgfortran/generated/all_l16.c24
-rw-r--r--libgfortran/generated/all_l2.c24
-rw-r--r--libgfortran/generated/all_l4.c24
-rw-r--r--libgfortran/generated/all_l8.c24
-rw-r--r--libgfortran/generated/any_l1.c24
-rw-r--r--libgfortran/generated/any_l16.c24
-rw-r--r--libgfortran/generated/any_l2.c24
-rw-r--r--libgfortran/generated/any_l4.c24
-rw-r--r--libgfortran/generated/any_l8.c24
-rw-r--r--libgfortran/generated/bessel_r10.c12
-rw-r--r--libgfortran/generated/bessel_r16.c12
-rw-r--r--libgfortran/generated/bessel_r4.c12
-rw-r--r--libgfortran/generated/bessel_r8.c12
-rw-r--r--libgfortran/generated/count_16_l.c24
-rw-r--r--libgfortran/generated/count_1_l.c24
-rw-r--r--libgfortran/generated/count_2_l.c24
-rw-r--r--libgfortran/generated/count_4_l.c24
-rw-r--r--libgfortran/generated/count_8_l.c24
-rw-r--r--libgfortran/generated/cshift0_c10.c8
-rw-r--r--libgfortran/generated/cshift0_c16.c8
-rw-r--r--libgfortran/generated/cshift0_c4.c8
-rw-r--r--libgfortran/generated/cshift0_c8.c8
-rw-r--r--libgfortran/generated/cshift0_i1.c8
-rw-r--r--libgfortran/generated/cshift0_i16.c8
-rw-r--r--libgfortran/generated/cshift0_i2.c8
-rw-r--r--libgfortran/generated/cshift0_i4.c8
-rw-r--r--libgfortran/generated/cshift0_i8.c8
-rw-r--r--libgfortran/generated/cshift0_r10.c8
-rw-r--r--libgfortran/generated/cshift0_r16.c8
-rw-r--r--libgfortran/generated/cshift0_r4.c8
-rw-r--r--libgfortran/generated/cshift0_r8.c8
-rw-r--r--libgfortran/generated/cshift1_16.c31
-rw-r--r--libgfortran/generated/cshift1_4.c31
-rw-r--r--libgfortran/generated/cshift1_8.c31
-rw-r--r--libgfortran/generated/eoshift1_16.c27
-rw-r--r--libgfortran/generated/eoshift1_4.c27
-rw-r--r--libgfortran/generated/eoshift1_8.c27
-rw-r--r--libgfortran/generated/eoshift3_16.c29
-rw-r--r--libgfortran/generated/eoshift3_4.c29
-rw-r--r--libgfortran/generated/eoshift3_8.c29
-rw-r--r--libgfortran/generated/iall_i1.c66
-rw-r--r--libgfortran/generated/iall_i16.c66
-rw-r--r--libgfortran/generated/iall_i2.c66
-rw-r--r--libgfortran/generated/iall_i4.c66
-rw-r--r--libgfortran/generated/iall_i8.c66
-rw-r--r--libgfortran/generated/iany_i1.c66
-rw-r--r--libgfortran/generated/iany_i16.c66
-rw-r--r--libgfortran/generated/iany_i2.c66
-rw-r--r--libgfortran/generated/iany_i4.c66
-rw-r--r--libgfortran/generated/iany_i8.c66
-rw-r--r--libgfortran/generated/in_pack_c10.c2
-rw-r--r--libgfortran/generated/in_pack_c16.c2
-rw-r--r--libgfortran/generated/in_pack_c4.c2
-rw-r--r--libgfortran/generated/in_pack_c8.c2
-rw-r--r--libgfortran/generated/in_pack_i1.c2
-rw-r--r--libgfortran/generated/in_pack_i16.c2
-rw-r--r--libgfortran/generated/in_pack_i2.c2
-rw-r--r--libgfortran/generated/in_pack_i4.c2
-rw-r--r--libgfortran/generated/in_pack_i8.c2
-rw-r--r--libgfortran/generated/in_pack_r10.c2
-rw-r--r--libgfortran/generated/in_pack_r16.c2
-rw-r--r--libgfortran/generated/in_pack_r4.c2
-rw-r--r--libgfortran/generated/in_pack_r8.c2
-rw-r--r--libgfortran/generated/in_unpack_c10.c2
-rw-r--r--libgfortran/generated/in_unpack_c16.c2
-rw-r--r--libgfortran/generated/in_unpack_c4.c2
-rw-r--r--libgfortran/generated/in_unpack_c8.c2
-rw-r--r--libgfortran/generated/in_unpack_i1.c2
-rw-r--r--libgfortran/generated/in_unpack_i16.c2
-rw-r--r--libgfortran/generated/in_unpack_i2.c2
-rw-r--r--libgfortran/generated/in_unpack_i4.c2
-rw-r--r--libgfortran/generated/in_unpack_i8.c2
-rw-r--r--libgfortran/generated/in_unpack_r10.c2
-rw-r--r--libgfortran/generated/in_unpack_r16.c2
-rw-r--r--libgfortran/generated/in_unpack_r4.c2
-rw-r--r--libgfortran/generated/in_unpack_r8.c2
-rw-r--r--libgfortran/generated/iparity_i1.c66
-rw-r--r--libgfortran/generated/iparity_i16.c66
-rw-r--r--libgfortran/generated/iparity_i2.c66
-rw-r--r--libgfortran/generated/iparity_i4.c66
-rw-r--r--libgfortran/generated/iparity_i8.c66
-rw-r--r--libgfortran/generated/matmul_c10.c29
-rw-r--r--libgfortran/generated/matmul_c16.c29
-rw-r--r--libgfortran/generated/matmul_c4.c29
-rw-r--r--libgfortran/generated/matmul_c8.c29
-rw-r--r--libgfortran/generated/matmul_i1.c29
-rw-r--r--libgfortran/generated/matmul_i16.c29
-rw-r--r--libgfortran/generated/matmul_i2.c29
-rw-r--r--libgfortran/generated/matmul_i4.c29
-rw-r--r--libgfortran/generated/matmul_i8.c29
-rw-r--r--libgfortran/generated/matmul_l16.c41
-rw-r--r--libgfortran/generated/matmul_l4.c41
-rw-r--r--libgfortran/generated/matmul_l8.c41
-rw-r--r--libgfortran/generated/matmul_r10.c29
-rw-r--r--libgfortran/generated/matmul_r16.c29
-rw-r--r--libgfortran/generated/matmul_r4.c29
-rw-r--r--libgfortran/generated/matmul_r8.c29
-rw-r--r--libgfortran/generated/maxloc0_16_i1.c27
-rw-r--r--libgfortran/generated/maxloc0_16_i16.c27
-rw-r--r--libgfortran/generated/maxloc0_16_i2.c27
-rw-r--r--libgfortran/generated/maxloc0_16_i4.c27
-rw-r--r--libgfortran/generated/maxloc0_16_i8.c27
-rw-r--r--libgfortran/generated/maxloc0_16_r10.c27
-rw-r--r--libgfortran/generated/maxloc0_16_r16.c27
-rw-r--r--libgfortran/generated/maxloc0_16_r4.c27
-rw-r--r--libgfortran/generated/maxloc0_16_r8.c27
-rw-r--r--libgfortran/generated/maxloc0_4_i1.c27
-rw-r--r--libgfortran/generated/maxloc0_4_i16.c27
-rw-r--r--libgfortran/generated/maxloc0_4_i2.c27
-rw-r--r--libgfortran/generated/maxloc0_4_i4.c27
-rw-r--r--libgfortran/generated/maxloc0_4_i8.c27
-rw-r--r--libgfortran/generated/maxloc0_4_r10.c27
-rw-r--r--libgfortran/generated/maxloc0_4_r16.c27
-rw-r--r--libgfortran/generated/maxloc0_4_r4.c27
-rw-r--r--libgfortran/generated/maxloc0_4_r8.c27
-rw-r--r--libgfortran/generated/maxloc0_8_i1.c27
-rw-r--r--libgfortran/generated/maxloc0_8_i16.c27
-rw-r--r--libgfortran/generated/maxloc0_8_i2.c27
-rw-r--r--libgfortran/generated/maxloc0_8_i4.c27
-rw-r--r--libgfortran/generated/maxloc0_8_i8.c27
-rw-r--r--libgfortran/generated/maxloc0_8_r10.c27
-rw-r--r--libgfortran/generated/maxloc0_8_r16.c27
-rw-r--r--libgfortran/generated/maxloc0_8_r4.c27
-rw-r--r--libgfortran/generated/maxloc0_8_r8.c27
-rw-r--r--libgfortran/generated/maxloc1_16_i1.c66
-rw-r--r--libgfortran/generated/maxloc1_16_i16.c66
-rw-r--r--libgfortran/generated/maxloc1_16_i2.c66
-rw-r--r--libgfortran/generated/maxloc1_16_i4.c66
-rw-r--r--libgfortran/generated/maxloc1_16_i8.c66
-rw-r--r--libgfortran/generated/maxloc1_16_r10.c66
-rw-r--r--libgfortran/generated/maxloc1_16_r16.c66
-rw-r--r--libgfortran/generated/maxloc1_16_r4.c66
-rw-r--r--libgfortran/generated/maxloc1_16_r8.c66
-rw-r--r--libgfortran/generated/maxloc1_4_i1.c66
-rw-r--r--libgfortran/generated/maxloc1_4_i16.c66
-rw-r--r--libgfortran/generated/maxloc1_4_i2.c66
-rw-r--r--libgfortran/generated/maxloc1_4_i4.c66
-rw-r--r--libgfortran/generated/maxloc1_4_i8.c66
-rw-r--r--libgfortran/generated/maxloc1_4_r10.c66
-rw-r--r--libgfortran/generated/maxloc1_4_r16.c66
-rw-r--r--libgfortran/generated/maxloc1_4_r4.c66
-rw-r--r--libgfortran/generated/maxloc1_4_r8.c66
-rw-r--r--libgfortran/generated/maxloc1_8_i1.c66
-rw-r--r--libgfortran/generated/maxloc1_8_i16.c66
-rw-r--r--libgfortran/generated/maxloc1_8_i2.c66
-rw-r--r--libgfortran/generated/maxloc1_8_i4.c66
-rw-r--r--libgfortran/generated/maxloc1_8_i8.c66
-rw-r--r--libgfortran/generated/maxloc1_8_r10.c66
-rw-r--r--libgfortran/generated/maxloc1_8_r16.c66
-rw-r--r--libgfortran/generated/maxloc1_8_r4.c66
-rw-r--r--libgfortran/generated/maxloc1_8_r8.c66
-rw-r--r--libgfortran/generated/maxval_i1.c66
-rw-r--r--libgfortran/generated/maxval_i16.c66
-rw-r--r--libgfortran/generated/maxval_i2.c66
-rw-r--r--libgfortran/generated/maxval_i4.c66
-rw-r--r--libgfortran/generated/maxval_i8.c66
-rw-r--r--libgfortran/generated/maxval_r10.c66
-rw-r--r--libgfortran/generated/maxval_r16.c66
-rw-r--r--libgfortran/generated/maxval_r4.c66
-rw-r--r--libgfortran/generated/maxval_r8.c66
-rw-r--r--libgfortran/generated/minloc0_16_i1.c27
-rw-r--r--libgfortran/generated/minloc0_16_i16.c27
-rw-r--r--libgfortran/generated/minloc0_16_i2.c27
-rw-r--r--libgfortran/generated/minloc0_16_i4.c27
-rw-r--r--libgfortran/generated/minloc0_16_i8.c27
-rw-r--r--libgfortran/generated/minloc0_16_r10.c27
-rw-r--r--libgfortran/generated/minloc0_16_r16.c27
-rw-r--r--libgfortran/generated/minloc0_16_r4.c27
-rw-r--r--libgfortran/generated/minloc0_16_r8.c27
-rw-r--r--libgfortran/generated/minloc0_4_i1.c27
-rw-r--r--libgfortran/generated/minloc0_4_i16.c27
-rw-r--r--libgfortran/generated/minloc0_4_i2.c27
-rw-r--r--libgfortran/generated/minloc0_4_i4.c27
-rw-r--r--libgfortran/generated/minloc0_4_i8.c27
-rw-r--r--libgfortran/generated/minloc0_4_r10.c27
-rw-r--r--libgfortran/generated/minloc0_4_r16.c27
-rw-r--r--libgfortran/generated/minloc0_4_r4.c27
-rw-r--r--libgfortran/generated/minloc0_4_r8.c27
-rw-r--r--libgfortran/generated/minloc0_8_i1.c27
-rw-r--r--libgfortran/generated/minloc0_8_i16.c27
-rw-r--r--libgfortran/generated/minloc0_8_i2.c27
-rw-r--r--libgfortran/generated/minloc0_8_i4.c27
-rw-r--r--libgfortran/generated/minloc0_8_i8.c27
-rw-r--r--libgfortran/generated/minloc0_8_r10.c27
-rw-r--r--libgfortran/generated/minloc0_8_r16.c27
-rw-r--r--libgfortran/generated/minloc0_8_r4.c27
-rw-r--r--libgfortran/generated/minloc0_8_r8.c27
-rw-r--r--libgfortran/generated/minloc1_16_i1.c66
-rw-r--r--libgfortran/generated/minloc1_16_i16.c66
-rw-r--r--libgfortran/generated/minloc1_16_i2.c66
-rw-r--r--libgfortran/generated/minloc1_16_i4.c66
-rw-r--r--libgfortran/generated/minloc1_16_i8.c66
-rw-r--r--libgfortran/generated/minloc1_16_r10.c66
-rw-r--r--libgfortran/generated/minloc1_16_r16.c66
-rw-r--r--libgfortran/generated/minloc1_16_r4.c66
-rw-r--r--libgfortran/generated/minloc1_16_r8.c66
-rw-r--r--libgfortran/generated/minloc1_4_i1.c66
-rw-r--r--libgfortran/generated/minloc1_4_i16.c66
-rw-r--r--libgfortran/generated/minloc1_4_i2.c66
-rw-r--r--libgfortran/generated/minloc1_4_i4.c66
-rw-r--r--libgfortran/generated/minloc1_4_i8.c66
-rw-r--r--libgfortran/generated/minloc1_4_r10.c66
-rw-r--r--libgfortran/generated/minloc1_4_r16.c66
-rw-r--r--libgfortran/generated/minloc1_4_r4.c66
-rw-r--r--libgfortran/generated/minloc1_4_r8.c66
-rw-r--r--libgfortran/generated/minloc1_8_i1.c66
-rw-r--r--libgfortran/generated/minloc1_8_i16.c66
-rw-r--r--libgfortran/generated/minloc1_8_i2.c66
-rw-r--r--libgfortran/generated/minloc1_8_i4.c66
-rw-r--r--libgfortran/generated/minloc1_8_i8.c66
-rw-r--r--libgfortran/generated/minloc1_8_r10.c66
-rw-r--r--libgfortran/generated/minloc1_8_r16.c66
-rw-r--r--libgfortran/generated/minloc1_8_r4.c66
-rw-r--r--libgfortran/generated/minloc1_8_r8.c66
-rw-r--r--libgfortran/generated/minval_i1.c66
-rw-r--r--libgfortran/generated/minval_i16.c66
-rw-r--r--libgfortran/generated/minval_i2.c66
-rw-r--r--libgfortran/generated/minval_i4.c66
-rw-r--r--libgfortran/generated/minval_i8.c66
-rw-r--r--libgfortran/generated/minval_r10.c66
-rw-r--r--libgfortran/generated/minval_r16.c66
-rw-r--r--libgfortran/generated/minval_r4.c66
-rw-r--r--libgfortran/generated/minval_r8.c66
-rw-r--r--libgfortran/generated/norm2_r10.c21
-rw-r--r--libgfortran/generated/norm2_r16.c21
-rw-r--r--libgfortran/generated/norm2_r4.c21
-rw-r--r--libgfortran/generated/norm2_r8.c21
-rw-r--r--libgfortran/generated/pack_c10.c12
-rw-r--r--libgfortran/generated/pack_c16.c12
-rw-r--r--libgfortran/generated/pack_c4.c12
-rw-r--r--libgfortran/generated/pack_c8.c12
-rw-r--r--libgfortran/generated/pack_i1.c12
-rw-r--r--libgfortran/generated/pack_i16.c12
-rw-r--r--libgfortran/generated/pack_i2.c12
-rw-r--r--libgfortran/generated/pack_i4.c12
-rw-r--r--libgfortran/generated/pack_i8.c12
-rw-r--r--libgfortran/generated/pack_r10.c12
-rw-r--r--libgfortran/generated/pack_r16.c12
-rw-r--r--libgfortran/generated/pack_r4.c12
-rw-r--r--libgfortran/generated/pack_r8.c12
-rw-r--r--libgfortran/generated/parity_l1.c21
-rw-r--r--libgfortran/generated/parity_l16.c21
-rw-r--r--libgfortran/generated/parity_l2.c21
-rw-r--r--libgfortran/generated/parity_l4.c21
-rw-r--r--libgfortran/generated/parity_l8.c21
-rw-r--r--libgfortran/generated/product_c10.c66
-rw-r--r--libgfortran/generated/product_c16.c66
-rw-r--r--libgfortran/generated/product_c4.c66
-rw-r--r--libgfortran/generated/product_c8.c66
-rw-r--r--libgfortran/generated/product_i1.c66
-rw-r--r--libgfortran/generated/product_i16.c66
-rw-r--r--libgfortran/generated/product_i2.c66
-rw-r--r--libgfortran/generated/product_i4.c66
-rw-r--r--libgfortran/generated/product_i8.c66
-rw-r--r--libgfortran/generated/product_r10.c66
-rw-r--r--libgfortran/generated/product_r16.c66
-rw-r--r--libgfortran/generated/product_r4.c66
-rw-r--r--libgfortran/generated/product_r8.c66
-rw-r--r--libgfortran/generated/reshape_c10.c21
-rw-r--r--libgfortran/generated/reshape_c16.c21
-rw-r--r--libgfortran/generated/reshape_c4.c21
-rw-r--r--libgfortran/generated/reshape_c8.c21
-rw-r--r--libgfortran/generated/reshape_i16.c21
-rw-r--r--libgfortran/generated/reshape_i4.c21
-rw-r--r--libgfortran/generated/reshape_i8.c21
-rw-r--r--libgfortran/generated/reshape_r10.c21
-rw-r--r--libgfortran/generated/reshape_r16.c21
-rw-r--r--libgfortran/generated/reshape_r4.c21
-rw-r--r--libgfortran/generated/reshape_r8.c21
-rw-r--r--libgfortran/generated/shape_i16.c4
-rw-r--r--libgfortran/generated/shape_i4.c4
-rw-r--r--libgfortran/generated/shape_i8.c4
-rw-r--r--libgfortran/generated/spread_c10.c31
-rw-r--r--libgfortran/generated/spread_c16.c31
-rw-r--r--libgfortran/generated/spread_c4.c31
-rw-r--r--libgfortran/generated/spread_c8.c31
-rw-r--r--libgfortran/generated/spread_i1.c31
-rw-r--r--libgfortran/generated/spread_i16.c31
-rw-r--r--libgfortran/generated/spread_i2.c31
-rw-r--r--libgfortran/generated/spread_i4.c31
-rw-r--r--libgfortran/generated/spread_i8.c31
-rw-r--r--libgfortran/generated/spread_r10.c31
-rw-r--r--libgfortran/generated/spread_r16.c31
-rw-r--r--libgfortran/generated/spread_r4.c31
-rw-r--r--libgfortran/generated/spread_r8.c31
-rw-r--r--libgfortran/generated/sum_c10.c66
-rw-r--r--libgfortran/generated/sum_c16.c66
-rw-r--r--libgfortran/generated/sum_c4.c66
-rw-r--r--libgfortran/generated/sum_c8.c66
-rw-r--r--libgfortran/generated/sum_i1.c66
-rw-r--r--libgfortran/generated/sum_i16.c66
-rw-r--r--libgfortran/generated/sum_i2.c66
-rw-r--r--libgfortran/generated/sum_i4.c66
-rw-r--r--libgfortran/generated/sum_i8.c66
-rw-r--r--libgfortran/generated/sum_r10.c66
-rw-r--r--libgfortran/generated/sum_r16.c66
-rw-r--r--libgfortran/generated/sum_r4.c66
-rw-r--r--libgfortran/generated/sum_r8.c66
-rw-r--r--libgfortran/generated/transpose_c10.c18
-rw-r--r--libgfortran/generated/transpose_c16.c18
-rw-r--r--libgfortran/generated/transpose_c4.c18
-rw-r--r--libgfortran/generated/transpose_c8.c18
-rw-r--r--libgfortran/generated/transpose_i16.c18
-rw-r--r--libgfortran/generated/transpose_i4.c18
-rw-r--r--libgfortran/generated/transpose_i8.c18
-rw-r--r--libgfortran/generated/transpose_r10.c18
-rw-r--r--libgfortran/generated/transpose_r16.c18
-rw-r--r--libgfortran/generated/transpose_r4.c18
-rw-r--r--libgfortran/generated/transpose_r8.c18
-rw-r--r--libgfortran/generated/unpack_c10.c34
-rw-r--r--libgfortran/generated/unpack_c16.c34
-rw-r--r--libgfortran/generated/unpack_c4.c34
-rw-r--r--libgfortran/generated/unpack_c8.c34
-rw-r--r--libgfortran/generated/unpack_i1.c34
-rw-r--r--libgfortran/generated/unpack_i16.c34
-rw-r--r--libgfortran/generated/unpack_i2.c34
-rw-r--r--libgfortran/generated/unpack_i4.c34
-rw-r--r--libgfortran/generated/unpack_i8.c34
-rw-r--r--libgfortran/generated/unpack_r10.c34
-rw-r--r--libgfortran/generated/unpack_r16.c34
-rw-r--r--libgfortran/generated/unpack_r4.c34
-rw-r--r--libgfortran/generated/unpack_r8.c34
323 files changed, 6112 insertions, 5760 deletions
diff --git a/libgfortran/generated/all_l1.c b/libgfortran/generated/all_l1.c
index 0f008b97dcb..76e11b79ff6 100644
--- a/libgfortran/generated/all_l1.c
+++ b/libgfortran/generated/all_l1.c
@@ -58,17 +58,17 @@ all_l1 (gfc_array_l1 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ all_l1 (gfc_array_l1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ all_l1 (gfc_array_l1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ all_l1 (gfc_array_l1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/all_l16.c b/libgfortran/generated/all_l16.c
index a9f85b4bfed..85085224235 100644
--- a/libgfortran/generated/all_l16.c
+++ b/libgfortran/generated/all_l16.c
@@ -58,17 +58,17 @@ all_l16 (gfc_array_l16 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ all_l16 (gfc_array_l16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ all_l16 (gfc_array_l16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ all_l16 (gfc_array_l16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/all_l2.c b/libgfortran/generated/all_l2.c
index 3ef4a1dc25c..763a25db0d3 100644
--- a/libgfortran/generated/all_l2.c
+++ b/libgfortran/generated/all_l2.c
@@ -58,17 +58,17 @@ all_l2 (gfc_array_l2 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ all_l2 (gfc_array_l2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ all_l2 (gfc_array_l2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ all_l2 (gfc_array_l2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/all_l4.c b/libgfortran/generated/all_l4.c
index 58dab4f124d..699f81afb6e 100644
--- a/libgfortran/generated/all_l4.c
+++ b/libgfortran/generated/all_l4.c
@@ -58,17 +58,17 @@ all_l4 (gfc_array_l4 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ all_l4 (gfc_array_l4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ all_l4 (gfc_array_l4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ all_l4 (gfc_array_l4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/all_l8.c b/libgfortran/generated/all_l8.c
index 4293aaa06b7..6710767f0fc 100644
--- a/libgfortran/generated/all_l8.c
+++ b/libgfortran/generated/all_l8.c
@@ -58,17 +58,17 @@ all_l8 (gfc_array_l8 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ all_l8 (gfc_array_l8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ all_l8 (gfc_array_l8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ all_l8 (gfc_array_l8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/any_l1.c b/libgfortran/generated/any_l1.c
index 46387fdd2a2..783f762b171 100644
--- a/libgfortran/generated/any_l1.c
+++ b/libgfortran/generated/any_l1.c
@@ -58,17 +58,17 @@ any_l1 (gfc_array_l1 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ any_l1 (gfc_array_l1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ any_l1 (gfc_array_l1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ any_l1 (gfc_array_l1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/any_l16.c b/libgfortran/generated/any_l16.c
index b29fdd923d7..eb84fc3d950 100644
--- a/libgfortran/generated/any_l16.c
+++ b/libgfortran/generated/any_l16.c
@@ -58,17 +58,17 @@ any_l16 (gfc_array_l16 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ any_l16 (gfc_array_l16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ any_l16 (gfc_array_l16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ any_l16 (gfc_array_l16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/any_l2.c b/libgfortran/generated/any_l2.c
index a63c593d4b8..a5c34959796 100644
--- a/libgfortran/generated/any_l2.c
+++ b/libgfortran/generated/any_l2.c
@@ -58,17 +58,17 @@ any_l2 (gfc_array_l2 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ any_l2 (gfc_array_l2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ any_l2 (gfc_array_l2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ any_l2 (gfc_array_l2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/any_l4.c b/libgfortran/generated/any_l4.c
index ccd35d78935..129fe997d6b 100644
--- a/libgfortran/generated/any_l4.c
+++ b/libgfortran/generated/any_l4.c
@@ -58,17 +58,17 @@ any_l4 (gfc_array_l4 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ any_l4 (gfc_array_l4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ any_l4 (gfc_array_l4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ any_l4 (gfc_array_l4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/any_l8.c b/libgfortran/generated/any_l8.c
index e089ea8beed..b358aba5b0e 100644
--- a/libgfortran/generated/any_l8.c
+++ b/libgfortran/generated/any_l8.c
@@ -58,17 +58,17 @@ any_l8 (gfc_array_l8 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ any_l8 (gfc_array_l8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ any_l8 (gfc_array_l8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ any_l8 (gfc_array_l8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/bessel_r10.c b/libgfortran/generated/bessel_r10.c
index 14b93e91007..cd55e1fdbd9 100644
--- a/libgfortran/generated/bessel_r10.c
+++ b/libgfortran/generated/bessel_r10.c
@@ -49,12 +49,12 @@ bessel_jn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2, GFC_REAL_10 x
GFC_REAL_10 last1, last2, x2rev;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (ret->base_addr == NULL)
{
size_t size = n2 < n1 ? 0 : n2-n1+1;
- GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_10));
ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_10));
ret->offset = 0;
}
@@ -68,7 +68,7 @@ bessel_jn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2, GFC_REAL_10 x
"(%ld vs. %ld)", (long int) n2-n1,
(long int) GFC_DESCRIPTOR_EXTENT(ret,0));
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (unlikely (x == 0))
{
@@ -116,12 +116,12 @@ bessel_yn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2,
GFC_REAL_10 last1, last2, x2rev;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (ret->base_addr == NULL)
{
size_t size = n2 < n1 ? 0 : n2-n1+1;
- GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_10));
ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_10));
ret->offset = 0;
}
@@ -135,7 +135,7 @@ bessel_yn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2,
"(%ld vs. %ld)", (long int) n2-n1,
(long int) GFC_DESCRIPTOR_EXTENT(ret,0));
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (unlikely (x == 0))
{
diff --git a/libgfortran/generated/bessel_r16.c b/libgfortran/generated/bessel_r16.c
index d64fa9c138e..aff3cd211b0 100644
--- a/libgfortran/generated/bessel_r16.c
+++ b/libgfortran/generated/bessel_r16.c
@@ -53,12 +53,12 @@ bessel_jn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2, GFC_REAL_16 x
GFC_REAL_16 last1, last2, x2rev;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (ret->base_addr == NULL)
{
size_t size = n2 < n1 ? 0 : n2-n1+1;
- GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_16));
ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_16));
ret->offset = 0;
}
@@ -72,7 +72,7 @@ bessel_jn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2, GFC_REAL_16 x
"(%ld vs. %ld)", (long int) n2-n1,
(long int) GFC_DESCRIPTOR_EXTENT(ret,0));
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (unlikely (x == 0))
{
@@ -120,12 +120,12 @@ bessel_yn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2,
GFC_REAL_16 last1, last2, x2rev;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (ret->base_addr == NULL)
{
size_t size = n2 < n1 ? 0 : n2-n1+1;
- GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_16));
ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_16));
ret->offset = 0;
}
@@ -139,7 +139,7 @@ bessel_yn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2,
"(%ld vs. %ld)", (long int) n2-n1,
(long int) GFC_DESCRIPTOR_EXTENT(ret,0));
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (unlikely (x == 0))
{
diff --git a/libgfortran/generated/bessel_r4.c b/libgfortran/generated/bessel_r4.c
index a86bb5fa958..186280aa66c 100644
--- a/libgfortran/generated/bessel_r4.c
+++ b/libgfortran/generated/bessel_r4.c
@@ -49,12 +49,12 @@ bessel_jn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2, GFC_REAL_4 x)
GFC_REAL_4 last1, last2, x2rev;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (ret->base_addr == NULL)
{
size_t size = n2 < n1 ? 0 : n2-n1+1;
- GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_4));
ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_4));
ret->offset = 0;
}
@@ -68,7 +68,7 @@ bessel_jn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2, GFC_REAL_4 x)
"(%ld vs. %ld)", (long int) n2-n1,
(long int) GFC_DESCRIPTOR_EXTENT(ret,0));
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (unlikely (x == 0))
{
@@ -116,12 +116,12 @@ bessel_yn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2,
GFC_REAL_4 last1, last2, x2rev;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (ret->base_addr == NULL)
{
size_t size = n2 < n1 ? 0 : n2-n1+1;
- GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_4));
ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_4));
ret->offset = 0;
}
@@ -135,7 +135,7 @@ bessel_yn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2,
"(%ld vs. %ld)", (long int) n2-n1,
(long int) GFC_DESCRIPTOR_EXTENT(ret,0));
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (unlikely (x == 0))
{
diff --git a/libgfortran/generated/bessel_r8.c b/libgfortran/generated/bessel_r8.c
index 84018872e05..ecc23d68c62 100644
--- a/libgfortran/generated/bessel_r8.c
+++ b/libgfortran/generated/bessel_r8.c
@@ -49,12 +49,12 @@ bessel_jn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2, GFC_REAL_8 x)
GFC_REAL_8 last1, last2, x2rev;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (ret->base_addr == NULL)
{
size_t size = n2 < n1 ? 0 : n2-n1+1;
- GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_8));
ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_8));
ret->offset = 0;
}
@@ -68,7 +68,7 @@ bessel_jn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2, GFC_REAL_8 x)
"(%ld vs. %ld)", (long int) n2-n1,
(long int) GFC_DESCRIPTOR_EXTENT(ret,0));
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (unlikely (x == 0))
{
@@ -116,12 +116,12 @@ bessel_yn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2,
GFC_REAL_8 last1, last2, x2rev;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (ret->base_addr == NULL)
{
size_t size = n2 < n1 ? 0 : n2-n1+1;
- GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_8));
ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_8));
ret->offset = 0;
}
@@ -135,7 +135,7 @@ bessel_yn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2,
"(%ld vs. %ld)", (long int) n2-n1,
(long int) GFC_DESCRIPTOR_EXTENT(ret,0));
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (unlikely (x == 0))
{
diff --git a/libgfortran/generated/count_16_l.c b/libgfortran/generated/count_16_l.c
index c6c0b5b9ceb..8557c058870 100644
--- a/libgfortran/generated/count_16_l.c
+++ b/libgfortran/generated/count_16_l.c
@@ -58,17 +58,17 @@ count_16_l (gfc_array_i16 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ count_16_l (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ count_16_l (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ count_16_l (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/count_1_l.c b/libgfortran/generated/count_1_l.c
index 15d270d0443..21024c13888 100644
--- a/libgfortran/generated/count_1_l.c
+++ b/libgfortran/generated/count_1_l.c
@@ -58,17 +58,17 @@ count_1_l (gfc_array_i1 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ count_1_l (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ count_1_l (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ count_1_l (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/count_2_l.c b/libgfortran/generated/count_2_l.c
index fd9b3d37ab4..2b3babb961c 100644
--- a/libgfortran/generated/count_2_l.c
+++ b/libgfortran/generated/count_2_l.c
@@ -58,17 +58,17 @@ count_2_l (gfc_array_i2 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ count_2_l (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ count_2_l (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ count_2_l (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/count_4_l.c b/libgfortran/generated/count_4_l.c
index 1e15256caa7..4c902e98332 100644
--- a/libgfortran/generated/count_4_l.c
+++ b/libgfortran/generated/count_4_l.c
@@ -58,17 +58,17 @@ count_4_l (gfc_array_i4 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ count_4_l (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ count_4_l (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ count_4_l (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/count_8_l.c b/libgfortran/generated/count_8_l.c
index 97962a4fe2d..83e1c5ee51c 100644
--- a/libgfortran/generated/count_8_l.c
+++ b/libgfortran/generated/count_8_l.c
@@ -58,17 +58,17 @@ count_8_l (gfc_array_i8 * const restrict retarray,
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
- src_kind = GFC_DESCRIPTOR_SIZE (array);
+ src_kind = GFC_DESCRIPTOR_ELEM_LEN (array);
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ delta = GFC_DESCRIPTOR_SM(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ count_8_l (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
if (extent[n] < 0)
@@ -85,23 +85,23 @@ count_8_l (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -139,7 +139,7 @@ count_8_l (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/cshift0_c10.c b/libgfortran/generated/cshift0_c10.c
index f5575329ff2..cdea0f15e7e 100644
--- a/libgfortran/generated/cshift0_c10.c
+++ b/libgfortran/generated/cshift0_c10.c
@@ -69,10 +69,10 @@ cshift0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_c16.c b/libgfortran/generated/cshift0_c16.c
index 2c5ffc1c620..ec0d2a21795 100644
--- a/libgfortran/generated/cshift0_c16.c
+++ b/libgfortran/generated/cshift0_c16.c
@@ -69,10 +69,10 @@ cshift0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_c4.c b/libgfortran/generated/cshift0_c4.c
index f437bc5916f..145306bcf81 100644
--- a/libgfortran/generated/cshift0_c4.c
+++ b/libgfortran/generated/cshift0_c4.c
@@ -69,10 +69,10 @@ cshift0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_c8.c b/libgfortran/generated/cshift0_c8.c
index 2dceecd8cb7..68ff130fdaf 100644
--- a/libgfortran/generated/cshift0_c8.c
+++ b/libgfortran/generated/cshift0_c8.c
@@ -69,10 +69,10 @@ cshift0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_i1.c b/libgfortran/generated/cshift0_i1.c
index 77c5c2ae916..32d27a3a083 100644
--- a/libgfortran/generated/cshift0_i1.c
+++ b/libgfortran/generated/cshift0_i1.c
@@ -69,10 +69,10 @@ cshift0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_i16.c b/libgfortran/generated/cshift0_i16.c
index 13209a850d6..06aded9784d 100644
--- a/libgfortran/generated/cshift0_i16.c
+++ b/libgfortran/generated/cshift0_i16.c
@@ -69,10 +69,10 @@ cshift0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_i2.c b/libgfortran/generated/cshift0_i2.c
index a03859be99e..b2ce7832e48 100644
--- a/libgfortran/generated/cshift0_i2.c
+++ b/libgfortran/generated/cshift0_i2.c
@@ -69,10 +69,10 @@ cshift0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_i4.c b/libgfortran/generated/cshift0_i4.c
index c3e179b67e6..b89a4a7f558 100644
--- a/libgfortran/generated/cshift0_i4.c
+++ b/libgfortran/generated/cshift0_i4.c
@@ -69,10 +69,10 @@ cshift0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_i8.c b/libgfortran/generated/cshift0_i8.c
index b15e625e287..b02fca11cdf 100644
--- a/libgfortran/generated/cshift0_i8.c
+++ b/libgfortran/generated/cshift0_i8.c
@@ -69,10 +69,10 @@ cshift0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_r10.c b/libgfortran/generated/cshift0_r10.c
index 77d8d9a60bc..3744c3ade1a 100644
--- a/libgfortran/generated/cshift0_r10.c
+++ b/libgfortran/generated/cshift0_r10.c
@@ -69,10 +69,10 @@ cshift0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_r16.c b/libgfortran/generated/cshift0_r16.c
index 6996519f457..c7325639bd7 100644
--- a/libgfortran/generated/cshift0_r16.c
+++ b/libgfortran/generated/cshift0_r16.c
@@ -69,10 +69,10 @@ cshift0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_r4.c b/libgfortran/generated/cshift0_r4.c
index 3ff3bc5c3f0..e6dcb1e0ddc 100644
--- a/libgfortran/generated/cshift0_r4.c
+++ b/libgfortran/generated/cshift0_r4.c
@@ -69,10 +69,10 @@ cshift0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift0_r8.c b/libgfortran/generated/cshift0_r8.c
index e71fe661890..b5587b4c25b 100644
--- a/libgfortran/generated/cshift0_r8.c
+++ b/libgfortran/generated/cshift0_r8.c
@@ -69,10 +69,10 @@ cshift0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, ptrdiff_t shift,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
if (roffset == 0)
roffset = 1;
- soffset = GFC_DESCRIPTOR_STRIDE(array,dim);
+ soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
if (soffset == 0)
soffset = 1;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -81,8 +81,8 @@ cshift0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, ptrdiff_t shift,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
n++;
}
}
diff --git a/libgfortran/generated/cshift1_16.c b/libgfortran/generated/cshift1_16.c
index b0cc767aea7..6ea2c6595ef 100644
--- a/libgfortran/generated/cshift1_16.c
+++ b/libgfortran/generated/cshift1_16.c
@@ -72,30 +72,27 @@ cshift1 (gfc_array_char * const restrict ret,
if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array))
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
- size = GFC_DESCRIPTOR_SIZE(array);
+ size = GFC_DESCRIPTOR_ELEM_LEN(array);
arraysize = size0 ((array_t *)array);
if (ret->base_addr == NULL)
{
int i;
+ index_type sm, ext;
ret->base_addr = xmallocarray (arraysize, size);
+ ret->elem_len = array->elem_len;
+ ret->type = array->type;
ret->offset = 0;
- ret->dtype = array->dtype;
+ sm = sizeof (GFC_INTEGER_16);
+ ext = 1;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
- index_type ub, str;
+ sm *= ext;
+ ext = GFC_DESCRIPTOR_EXTENT (array, i);
- ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1;
-
- if (i == 0)
- str = 1;
- else
- str = GFC_DESCRIPTOR_EXTENT(ret,i-1) *
- GFC_DESCRIPTOR_STRIDE(ret,i-1);
-
- GFC_DIMENSION_SET(ret->dim[i], 0, ub, str);
+ GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm);
}
}
else if (unlikely (compile_options.bounds_check))
@@ -126,10 +123,10 @@ cshift1 (gfc_array_char * const restrict ret,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
+ roffset = GFC_DESCRIPTOR_SM(ret,dim);
if (roffset == 0)
roffset = size;
- soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ soffset = GFC_DESCRIPTOR_SM(array,dim);
if (soffset == 0)
soffset = size;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -138,10 +135,10 @@ cshift1 (gfc_array_char * const restrict ret,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_SM(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,dim);
- hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n);
+ hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n);
n++;
}
}
diff --git a/libgfortran/generated/cshift1_4.c b/libgfortran/generated/cshift1_4.c
index 5ea8a6acedd..4793e58f183 100644
--- a/libgfortran/generated/cshift1_4.c
+++ b/libgfortran/generated/cshift1_4.c
@@ -72,30 +72,27 @@ cshift1 (gfc_array_char * const restrict ret,
if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array))
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
- size = GFC_DESCRIPTOR_SIZE(array);
+ size = GFC_DESCRIPTOR_ELEM_LEN(array);
arraysize = size0 ((array_t *)array);
if (ret->base_addr == NULL)
{
int i;
+ index_type sm, ext;
ret->base_addr = xmallocarray (arraysize, size);
+ ret->elem_len = array->elem_len;
+ ret->type = array->type;
ret->offset = 0;
- ret->dtype = array->dtype;
+ sm = sizeof (GFC_INTEGER_4);
+ ext = 1;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
- index_type ub, str;
+ sm *= ext;
+ ext = GFC_DESCRIPTOR_EXTENT (array, i);
- ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1;
-
- if (i == 0)
- str = 1;
- else
- str = GFC_DESCRIPTOR_EXTENT(ret,i-1) *
- GFC_DESCRIPTOR_STRIDE(ret,i-1);
-
- GFC_DIMENSION_SET(ret->dim[i], 0, ub, str);
+ GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm);
}
}
else if (unlikely (compile_options.bounds_check))
@@ -126,10 +123,10 @@ cshift1 (gfc_array_char * const restrict ret,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
+ roffset = GFC_DESCRIPTOR_SM(ret,dim);
if (roffset == 0)
roffset = size;
- soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ soffset = GFC_DESCRIPTOR_SM(array,dim);
if (soffset == 0)
soffset = size;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -138,10 +135,10 @@ cshift1 (gfc_array_char * const restrict ret,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_SM(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,dim);
- hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n);
+ hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n);
n++;
}
}
diff --git a/libgfortran/generated/cshift1_8.c b/libgfortran/generated/cshift1_8.c
index 5c4dbc36048..9be7415b628 100644
--- a/libgfortran/generated/cshift1_8.c
+++ b/libgfortran/generated/cshift1_8.c
@@ -72,30 +72,27 @@ cshift1 (gfc_array_char * const restrict ret,
if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array))
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
- size = GFC_DESCRIPTOR_SIZE(array);
+ size = GFC_DESCRIPTOR_ELEM_LEN(array);
arraysize = size0 ((array_t *)array);
if (ret->base_addr == NULL)
{
int i;
+ index_type sm, ext;
ret->base_addr = xmallocarray (arraysize, size);
+ ret->elem_len = array->elem_len;
+ ret->type = array->type;
ret->offset = 0;
- ret->dtype = array->dtype;
+ sm = sizeof (GFC_INTEGER_8);
+ ext = 1;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
- index_type ub, str;
+ sm *= ext;
+ ext = GFC_DESCRIPTOR_EXTENT (array, i);
- ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1;
-
- if (i == 0)
- str = 1;
- else
- str = GFC_DESCRIPTOR_EXTENT(ret,i-1) *
- GFC_DESCRIPTOR_STRIDE(ret,i-1);
-
- GFC_DIMENSION_SET(ret->dim[i], 0, ub, str);
+ GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm);
}
}
else if (unlikely (compile_options.bounds_check))
@@ -126,10 +123,10 @@ cshift1 (gfc_array_char * const restrict ret,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
+ roffset = GFC_DESCRIPTOR_SM(ret,dim);
if (roffset == 0)
roffset = size;
- soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ soffset = GFC_DESCRIPTOR_SM(array,dim);
if (soffset == 0)
soffset = size;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -138,10 +135,10 @@ cshift1 (gfc_array_char * const restrict ret,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_SM(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,dim);
- hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n);
+ hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n);
n++;
}
}
diff --git a/libgfortran/generated/eoshift1_16.c b/libgfortran/generated/eoshift1_16.c
index 566d807b3a4..06a3682035c 100644
--- a/libgfortran/generated/eoshift1_16.c
+++ b/libgfortran/generated/eoshift1_16.c
@@ -73,7 +73,7 @@ eoshift1 (gfc_array_char * const restrict ret,
soffset = 0;
roffset = 0;
- size = GFC_DESCRIPTOR_SIZE(array);
+ size = GFC_DESCRIPTOR_ELEM_LEN(array);
if (pwhich)
which = *pwhich - 1;
@@ -88,21 +88,22 @@ eoshift1 (gfc_array_char * const restrict ret,
{
int i;
+ ret->elem_len = array->elem_len;
+ ret->type = array->type;
ret->offset = 0;
- ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
- index_type ub, str;
+ index_type ext, sm;
- ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1;
+ ext = GFC_DESCRIPTOR_EXTENT (array, i);
if (i == 0)
- str = 1;
+ sm = size;
else
- str = GFC_DESCRIPTOR_EXTENT(ret,i-1)
- * GFC_DESCRIPTOR_STRIDE(ret,i-1);
+ sm = GFC_DESCRIPTOR_EXTENT (ret, i-1)
+ * GFC_DESCRIPTOR_SM (ret, i-1);
- GFC_DIMENSION_SET(ret->dim[i], 0, ub, str);
+ GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm);
}
/* xmallocarray allocates a single byte for zero size. */
@@ -129,10 +130,10 @@ eoshift1 (gfc_array_char * const restrict ret,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
+ roffset = GFC_DESCRIPTOR_SM(ret,dim);
if (roffset == 0)
roffset = size;
- soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ soffset = GFC_DESCRIPTOR_SM(array,dim);
if (soffset == 0)
soffset = size;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -141,10 +142,10 @@ eoshift1 (gfc_array_char * const restrict ret,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_SM(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,dim);
- hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n);
+ hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n);
n++;
}
}
diff --git a/libgfortran/generated/eoshift1_4.c b/libgfortran/generated/eoshift1_4.c
index bd5fabad311..7b0b4929aa7 100644
--- a/libgfortran/generated/eoshift1_4.c
+++ b/libgfortran/generated/eoshift1_4.c
@@ -73,7 +73,7 @@ eoshift1 (gfc_array_char * const restrict ret,
soffset = 0;
roffset = 0;
- size = GFC_DESCRIPTOR_SIZE(array);
+ size = GFC_DESCRIPTOR_ELEM_LEN(array);
if (pwhich)
which = *pwhich - 1;
@@ -88,21 +88,22 @@ eoshift1 (gfc_array_char * const restrict ret,
{
int i;
+ ret->elem_len = array->elem_len;
+ ret->type = array->type;
ret->offset = 0;
- ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
- index_type ub, str;
+ index_type ext, sm;
- ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1;
+ ext = GFC_DESCRIPTOR_EXTENT (array, i);
if (i == 0)
- str = 1;
+ sm = size;
else
- str = GFC_DESCRIPTOR_EXTENT(ret,i-1)
- * GFC_DESCRIPTOR_STRIDE(ret,i-1);
+ sm = GFC_DESCRIPTOR_EXTENT (ret, i-1)
+ * GFC_DESCRIPTOR_SM (ret, i-1);
- GFC_DIMENSION_SET(ret->dim[i], 0, ub, str);
+ GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm);
}
/* xmallocarray allocates a single byte for zero size. */
@@ -129,10 +130,10 @@ eoshift1 (gfc_array_char * const restrict ret,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
+ roffset = GFC_DESCRIPTOR_SM(ret,dim);
if (roffset == 0)
roffset = size;
- soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ soffset = GFC_DESCRIPTOR_SM(array,dim);
if (soffset == 0)
soffset = size;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -141,10 +142,10 @@ eoshift1 (gfc_array_char * const restrict ret,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_SM(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,dim);
- hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n);
+ hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n);
n++;
}
}
diff --git a/libgfortran/generated/eoshift1_8.c b/libgfortran/generated/eoshift1_8.c
index 814f81a8149..368a463a19b 100644
--- a/libgfortran/generated/eoshift1_8.c
+++ b/libgfortran/generated/eoshift1_8.c
@@ -73,7 +73,7 @@ eoshift1 (gfc_array_char * const restrict ret,
soffset = 0;
roffset = 0;
- size = GFC_DESCRIPTOR_SIZE(array);
+ size = GFC_DESCRIPTOR_ELEM_LEN(array);
if (pwhich)
which = *pwhich - 1;
@@ -88,21 +88,22 @@ eoshift1 (gfc_array_char * const restrict ret,
{
int i;
+ ret->elem_len = array->elem_len;
+ ret->type = array->type;
ret->offset = 0;
- ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
- index_type ub, str;
+ index_type ext, sm;
- ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1;
+ ext = GFC_DESCRIPTOR_EXTENT (array, i);
if (i == 0)
- str = 1;
+ sm = size;
else
- str = GFC_DESCRIPTOR_EXTENT(ret,i-1)
- * GFC_DESCRIPTOR_STRIDE(ret,i-1);
+ sm = GFC_DESCRIPTOR_EXTENT (ret, i-1)
+ * GFC_DESCRIPTOR_SM (ret, i-1);
- GFC_DIMENSION_SET(ret->dim[i], 0, ub, str);
+ GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm);
}
/* xmallocarray allocates a single byte for zero size. */
@@ -129,10 +130,10 @@ eoshift1 (gfc_array_char * const restrict ret,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
+ roffset = GFC_DESCRIPTOR_SM(ret,dim);
if (roffset == 0)
roffset = size;
- soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ soffset = GFC_DESCRIPTOR_SM(array,dim);
if (soffset == 0)
soffset = size;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -141,10 +142,10 @@ eoshift1 (gfc_array_char * const restrict ret,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_SM(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,dim);
- hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n);
+ hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n);
n++;
}
}
diff --git a/libgfortran/generated/eoshift3_16.c b/libgfortran/generated/eoshift3_16.c
index 5e09df22eb5..c494cea7c20 100644
--- a/libgfortran/generated/eoshift3_16.c
+++ b/libgfortran/generated/eoshift3_16.c
@@ -78,7 +78,7 @@ eoshift3 (gfc_array_char * const restrict ret,
roffset = 0;
arraysize = size0 ((array_t *) array);
- size = GFC_DESCRIPTOR_SIZE(array);
+ size = GFC_DESCRIPTOR_ELEM_LEN(array);
if (pwhich)
which = *pwhich - 1;
@@ -90,21 +90,22 @@ eoshift3 (gfc_array_char * const restrict ret,
int i;
ret->base_addr = xmallocarray (arraysize, size);
+ ret->elem_len = array->elem_len;
+ ret->type = array->type;
ret->offset = 0;
- ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
- index_type ub, str;
+ index_type ext, sm;
- ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1;
+ ext = GFC_DESCRIPTOR_EXTENT (array,i);
if (i == 0)
- str = 1;
+ sm = size;
else
- str = GFC_DESCRIPTOR_EXTENT(ret,i-1)
- * GFC_DESCRIPTOR_STRIDE(ret,i-1);
+ sm = GFC_DESCRIPTOR_EXTENT (ret, i-1)
+ * GFC_DESCRIPTOR_SM (ret, i-1);
- GFC_DIMENSION_SET(ret->dim[i], 0, ub, str);
+ GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm);
}
/* xmallocarray allocates a single byte for zero size. */
@@ -133,10 +134,10 @@ eoshift3 (gfc_array_char * const restrict ret,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
+ roffset = GFC_DESCRIPTOR_SM(ret,dim);
if (roffset == 0)
roffset = size;
- soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ soffset = GFC_DESCRIPTOR_SM(array,dim);
if (soffset == 0)
soffset = size;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -145,12 +146,12 @@ eoshift3 (gfc_array_char * const restrict ret,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_SM(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,dim);
- hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n);
+ hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n);
if (bound)
- bstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(bound,n);
+ bstride[n] = GFC_DESCRIPTOR_SM(bound,n);
else
bstride[n] = 0;
n++;
diff --git a/libgfortran/generated/eoshift3_4.c b/libgfortran/generated/eoshift3_4.c
index 970402c6341..7d00e36f61a 100644
--- a/libgfortran/generated/eoshift3_4.c
+++ b/libgfortran/generated/eoshift3_4.c
@@ -78,7 +78,7 @@ eoshift3 (gfc_array_char * const restrict ret,
roffset = 0;
arraysize = size0 ((array_t *) array);
- size = GFC_DESCRIPTOR_SIZE(array);
+ size = GFC_DESCRIPTOR_ELEM_LEN(array);
if (pwhich)
which = *pwhich - 1;
@@ -90,21 +90,22 @@ eoshift3 (gfc_array_char * const restrict ret,
int i;
ret->base_addr = xmallocarray (arraysize, size);
+ ret->elem_len = array->elem_len;
+ ret->type = array->type;
ret->offset = 0;
- ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
- index_type ub, str;
+ index_type ext, sm;
- ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1;
+ ext = GFC_DESCRIPTOR_EXTENT (array,i);
if (i == 0)
- str = 1;
+ sm = size;
else
- str = GFC_DESCRIPTOR_EXTENT(ret,i-1)
- * GFC_DESCRIPTOR_STRIDE(ret,i-1);
+ sm = GFC_DESCRIPTOR_EXTENT (ret, i-1)
+ * GFC_DESCRIPTOR_SM (ret, i-1);
- GFC_DIMENSION_SET(ret->dim[i], 0, ub, str);
+ GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm);
}
/* xmallocarray allocates a single byte for zero size. */
@@ -133,10 +134,10 @@ eoshift3 (gfc_array_char * const restrict ret,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
+ roffset = GFC_DESCRIPTOR_SM(ret,dim);
if (roffset == 0)
roffset = size;
- soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ soffset = GFC_DESCRIPTOR_SM(array,dim);
if (soffset == 0)
soffset = size;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -145,12 +146,12 @@ eoshift3 (gfc_array_char * const restrict ret,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_SM(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,dim);
- hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n);
+ hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n);
if (bound)
- bstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(bound,n);
+ bstride[n] = GFC_DESCRIPTOR_SM(bound,n);
else
bstride[n] = 0;
n++;
diff --git a/libgfortran/generated/eoshift3_8.c b/libgfortran/generated/eoshift3_8.c
index 991eb915164..3657ea2d589 100644
--- a/libgfortran/generated/eoshift3_8.c
+++ b/libgfortran/generated/eoshift3_8.c
@@ -78,7 +78,7 @@ eoshift3 (gfc_array_char * const restrict ret,
roffset = 0;
arraysize = size0 ((array_t *) array);
- size = GFC_DESCRIPTOR_SIZE(array);
+ size = GFC_DESCRIPTOR_ELEM_LEN(array);
if (pwhich)
which = *pwhich - 1;
@@ -90,21 +90,22 @@ eoshift3 (gfc_array_char * const restrict ret,
int i;
ret->base_addr = xmallocarray (arraysize, size);
+ ret->elem_len = array->elem_len;
+ ret->type = array->type;
ret->offset = 0;
- ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
- index_type ub, str;
+ index_type ext, sm;
- ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1;
+ ext = GFC_DESCRIPTOR_EXTENT (array,i);
if (i == 0)
- str = 1;
+ sm = size;
else
- str = GFC_DESCRIPTOR_EXTENT(ret,i-1)
- * GFC_DESCRIPTOR_STRIDE(ret,i-1);
+ sm = GFC_DESCRIPTOR_EXTENT (ret, i-1)
+ * GFC_DESCRIPTOR_SM (ret, i-1);
- GFC_DIMENSION_SET(ret->dim[i], 0, ub, str);
+ GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm);
}
/* xmallocarray allocates a single byte for zero size. */
@@ -133,10 +134,10 @@ eoshift3 (gfc_array_char * const restrict ret,
{
if (dim == which)
{
- roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
+ roffset = GFC_DESCRIPTOR_SM(ret,dim);
if (roffset == 0)
roffset = size;
- soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ soffset = GFC_DESCRIPTOR_SM(array,dim);
if (soffset == 0)
soffset = size;
len = GFC_DESCRIPTOR_EXTENT(array,dim);
@@ -145,12 +146,12 @@ eoshift3 (gfc_array_char * const restrict ret,
{
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim);
- rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
- sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
+ rstride[n] = GFC_DESCRIPTOR_SM(ret,dim);
+ sstride[n] = GFC_DESCRIPTOR_SM(array,dim);
- hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n);
+ hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n);
if (bound)
- bstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(bound,n);
+ bstride[n] = GFC_DESCRIPTOR_SM(bound,n);
else
bstride[n] = 0;
n++;
diff --git a/libgfortran/generated/iall_i1.c b/libgfortran/generated/iall_i1.c
index da0ce4d22fb..0e4c6f5dc46 100644
--- a/libgfortran/generated/iall_i1.c
+++ b/libgfortran/generated/iall_i1.c
@@ -60,11 +60,11 @@ iall_i1 (gfc_array_i1 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iall_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iall_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iall_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miall_i1 (gfc_array_i1 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miall_i1 (gfc_array_i1 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miall_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miall_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miall_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siall_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siall_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iall_i16.c b/libgfortran/generated/iall_i16.c
index a3f39d3c976..33f3764b46f 100644
--- a/libgfortran/generated/iall_i16.c
+++ b/libgfortran/generated/iall_i16.c
@@ -60,11 +60,11 @@ iall_i16 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iall_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iall_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iall_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miall_i16 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miall_i16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miall_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miall_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miall_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siall_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siall_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iall_i2.c b/libgfortran/generated/iall_i2.c
index 4ca06a8a012..52dc1da37e5 100644
--- a/libgfortran/generated/iall_i2.c
+++ b/libgfortran/generated/iall_i2.c
@@ -60,11 +60,11 @@ iall_i2 (gfc_array_i2 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iall_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iall_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iall_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miall_i2 (gfc_array_i2 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miall_i2 (gfc_array_i2 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miall_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miall_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miall_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siall_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siall_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iall_i4.c b/libgfortran/generated/iall_i4.c
index 8ff15f4ed4a..bca8e950ebb 100644
--- a/libgfortran/generated/iall_i4.c
+++ b/libgfortran/generated/iall_i4.c
@@ -60,11 +60,11 @@ iall_i4 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iall_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iall_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iall_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miall_i4 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miall_i4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miall_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miall_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miall_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siall_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siall_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iall_i8.c b/libgfortran/generated/iall_i8.c
index 08932d4862d..d0cf056302a 100644
--- a/libgfortran/generated/iall_i8.c
+++ b/libgfortran/generated/iall_i8.c
@@ -60,11 +60,11 @@ iall_i8 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iall_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iall_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iall_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miall_i8 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miall_i8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miall_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miall_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miall_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siall_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siall_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iany_i1.c b/libgfortran/generated/iany_i1.c
index 999230a114c..0a2fcd9d79f 100644
--- a/libgfortran/generated/iany_i1.c
+++ b/libgfortran/generated/iany_i1.c
@@ -60,11 +60,11 @@ iany_i1 (gfc_array_i1 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iany_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iany_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iany_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miany_i1 (gfc_array_i1 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miany_i1 (gfc_array_i1 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miany_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miany_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miany_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siany_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siany_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iany_i16.c b/libgfortran/generated/iany_i16.c
index 9410db45c33..fc61c2104c3 100644
--- a/libgfortran/generated/iany_i16.c
+++ b/libgfortran/generated/iany_i16.c
@@ -60,11 +60,11 @@ iany_i16 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iany_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iany_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iany_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miany_i16 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miany_i16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miany_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miany_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miany_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siany_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siany_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iany_i2.c b/libgfortran/generated/iany_i2.c
index 7068bb192e2..a58c458d6c1 100644
--- a/libgfortran/generated/iany_i2.c
+++ b/libgfortran/generated/iany_i2.c
@@ -60,11 +60,11 @@ iany_i2 (gfc_array_i2 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iany_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iany_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iany_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miany_i2 (gfc_array_i2 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miany_i2 (gfc_array_i2 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miany_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miany_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miany_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siany_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siany_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iany_i4.c b/libgfortran/generated/iany_i4.c
index 62034cfd832..7f081878907 100644
--- a/libgfortran/generated/iany_i4.c
+++ b/libgfortran/generated/iany_i4.c
@@ -60,11 +60,11 @@ iany_i4 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iany_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iany_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iany_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miany_i4 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miany_i4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miany_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miany_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miany_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siany_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siany_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iany_i8.c b/libgfortran/generated/iany_i8.c
index f347d69f1dd..ca3dea818a8 100644
--- a/libgfortran/generated/iany_i8.c
+++ b/libgfortran/generated/iany_i8.c
@@ -60,11 +60,11 @@ iany_i8 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iany_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iany_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iany_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miany_i8 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miany_i8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miany_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miany_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miany_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siany_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siany_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/in_pack_c10.c b/libgfortran/generated/in_pack_c10.c
index 9148af57712..ba2656115e7 100644
--- a/libgfortran/generated/in_pack_c10.c
+++ b/libgfortran/generated/in_pack_c10.c
@@ -57,7 +57,7 @@ internal_pack_c10 (gfc_array_c10 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_c16.c b/libgfortran/generated/in_pack_c16.c
index e109efc1d5d..f2285dcd60e 100644
--- a/libgfortran/generated/in_pack_c16.c
+++ b/libgfortran/generated/in_pack_c16.c
@@ -57,7 +57,7 @@ internal_pack_c16 (gfc_array_c16 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_c4.c b/libgfortran/generated/in_pack_c4.c
index 3afdaf3a44e..116cb6380df 100644
--- a/libgfortran/generated/in_pack_c4.c
+++ b/libgfortran/generated/in_pack_c4.c
@@ -57,7 +57,7 @@ internal_pack_c4 (gfc_array_c4 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_c8.c b/libgfortran/generated/in_pack_c8.c
index 995a3676dc7..f56e6bc8328 100644
--- a/libgfortran/generated/in_pack_c8.c
+++ b/libgfortran/generated/in_pack_c8.c
@@ -57,7 +57,7 @@ internal_pack_c8 (gfc_array_c8 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_i1.c b/libgfortran/generated/in_pack_i1.c
index 2ee5e283747..1a185ce6eef 100644
--- a/libgfortran/generated/in_pack_i1.c
+++ b/libgfortran/generated/in_pack_i1.c
@@ -57,7 +57,7 @@ internal_pack_1 (gfc_array_i1 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_i16.c b/libgfortran/generated/in_pack_i16.c
index ac6bb4f8ab1..b4537aa71e4 100644
--- a/libgfortran/generated/in_pack_i16.c
+++ b/libgfortran/generated/in_pack_i16.c
@@ -57,7 +57,7 @@ internal_pack_16 (gfc_array_i16 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_i2.c b/libgfortran/generated/in_pack_i2.c
index f42a89254ad..99bc9814a34 100644
--- a/libgfortran/generated/in_pack_i2.c
+++ b/libgfortran/generated/in_pack_i2.c
@@ -57,7 +57,7 @@ internal_pack_2 (gfc_array_i2 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_i4.c b/libgfortran/generated/in_pack_i4.c
index acde25aa9e3..f8a3a9694ac 100644
--- a/libgfortran/generated/in_pack_i4.c
+++ b/libgfortran/generated/in_pack_i4.c
@@ -57,7 +57,7 @@ internal_pack_4 (gfc_array_i4 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_i8.c b/libgfortran/generated/in_pack_i8.c
index 5be35445c20..7c3a927cad4 100644
--- a/libgfortran/generated/in_pack_i8.c
+++ b/libgfortran/generated/in_pack_i8.c
@@ -57,7 +57,7 @@ internal_pack_8 (gfc_array_i8 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_r10.c b/libgfortran/generated/in_pack_r10.c
index c4680d8cc92..01b9a83b35b 100644
--- a/libgfortran/generated/in_pack_r10.c
+++ b/libgfortran/generated/in_pack_r10.c
@@ -57,7 +57,7 @@ internal_pack_r10 (gfc_array_r10 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_r16.c b/libgfortran/generated/in_pack_r16.c
index ff09d1462f2..9f4d68b556a 100644
--- a/libgfortran/generated/in_pack_r16.c
+++ b/libgfortran/generated/in_pack_r16.c
@@ -57,7 +57,7 @@ internal_pack_r16 (gfc_array_r16 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_r4.c b/libgfortran/generated/in_pack_r4.c
index 34fe5829aed..316a644477e 100644
--- a/libgfortran/generated/in_pack_r4.c
+++ b/libgfortran/generated/in_pack_r4.c
@@ -57,7 +57,7 @@ internal_pack_r4 (gfc_array_r4 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_pack_r8.c b/libgfortran/generated/in_pack_r8.c
index b0728c9b69f..be5a761e4af 100644
--- a/libgfortran/generated/in_pack_r8.c
+++ b/libgfortran/generated/in_pack_r8.c
@@ -57,7 +57,7 @@ internal_pack_r8 (gfc_array_r8 * source)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (extent[n] <= 0)
{
diff --git a/libgfortran/generated/in_unpack_c10.c b/libgfortran/generated/in_unpack_c10.c
index 97f5bdfc69f..73fa9a8e715 100644
--- a/libgfortran/generated/in_unpack_c10.c
+++ b/libgfortran/generated/in_unpack_c10.c
@@ -52,7 +52,7 @@ internal_unpack_c10 (gfc_array_c10 * d, const GFC_COMPLEX_10 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_c16.c b/libgfortran/generated/in_unpack_c16.c
index 69cd4af2a97..c60873af9dd 100644
--- a/libgfortran/generated/in_unpack_c16.c
+++ b/libgfortran/generated/in_unpack_c16.c
@@ -52,7 +52,7 @@ internal_unpack_c16 (gfc_array_c16 * d, const GFC_COMPLEX_16 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_c4.c b/libgfortran/generated/in_unpack_c4.c
index 7e68cdc21ce..1057b64e51f 100644
--- a/libgfortran/generated/in_unpack_c4.c
+++ b/libgfortran/generated/in_unpack_c4.c
@@ -52,7 +52,7 @@ internal_unpack_c4 (gfc_array_c4 * d, const GFC_COMPLEX_4 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_c8.c b/libgfortran/generated/in_unpack_c8.c
index 28ea2d557f7..b8f1b5991ac 100644
--- a/libgfortran/generated/in_unpack_c8.c
+++ b/libgfortran/generated/in_unpack_c8.c
@@ -52,7 +52,7 @@ internal_unpack_c8 (gfc_array_c8 * d, const GFC_COMPLEX_8 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_i1.c b/libgfortran/generated/in_unpack_i1.c
index 6226e6163c0..b1535dc664a 100644
--- a/libgfortran/generated/in_unpack_i1.c
+++ b/libgfortran/generated/in_unpack_i1.c
@@ -52,7 +52,7 @@ internal_unpack_1 (gfc_array_i1 * d, const GFC_INTEGER_1 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_i16.c b/libgfortran/generated/in_unpack_i16.c
index 480626caa87..e510bd37984 100644
--- a/libgfortran/generated/in_unpack_i16.c
+++ b/libgfortran/generated/in_unpack_i16.c
@@ -52,7 +52,7 @@ internal_unpack_16 (gfc_array_i16 * d, const GFC_INTEGER_16 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_i2.c b/libgfortran/generated/in_unpack_i2.c
index ada4f1adb4a..9781fac3a2c 100644
--- a/libgfortran/generated/in_unpack_i2.c
+++ b/libgfortran/generated/in_unpack_i2.c
@@ -52,7 +52,7 @@ internal_unpack_2 (gfc_array_i2 * d, const GFC_INTEGER_2 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_i4.c b/libgfortran/generated/in_unpack_i4.c
index 29e4a999693..737c4275410 100644
--- a/libgfortran/generated/in_unpack_i4.c
+++ b/libgfortran/generated/in_unpack_i4.c
@@ -52,7 +52,7 @@ internal_unpack_4 (gfc_array_i4 * d, const GFC_INTEGER_4 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_i8.c b/libgfortran/generated/in_unpack_i8.c
index b4d07a0144f..606f248f704 100644
--- a/libgfortran/generated/in_unpack_i8.c
+++ b/libgfortran/generated/in_unpack_i8.c
@@ -52,7 +52,7 @@ internal_unpack_8 (gfc_array_i8 * d, const GFC_INTEGER_8 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_r10.c b/libgfortran/generated/in_unpack_r10.c
index 3183e4a95bc..c7577520c4c 100644
--- a/libgfortran/generated/in_unpack_r10.c
+++ b/libgfortran/generated/in_unpack_r10.c
@@ -52,7 +52,7 @@ internal_unpack_r10 (gfc_array_r10 * d, const GFC_REAL_10 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_r16.c b/libgfortran/generated/in_unpack_r16.c
index ef437a3f43f..bbc60802675 100644
--- a/libgfortran/generated/in_unpack_r16.c
+++ b/libgfortran/generated/in_unpack_r16.c
@@ -52,7 +52,7 @@ internal_unpack_r16 (gfc_array_r16 * d, const GFC_REAL_16 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_r4.c b/libgfortran/generated/in_unpack_r4.c
index 4b851f20734..ef2ea315a96 100644
--- a/libgfortran/generated/in_unpack_r4.c
+++ b/libgfortran/generated/in_unpack_r4.c
@@ -52,7 +52,7 @@ internal_unpack_r4 (gfc_array_r4 * d, const GFC_REAL_4 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/in_unpack_r8.c b/libgfortran/generated/in_unpack_r8.c
index cb85fee4424..f09607b4cf2 100644
--- a/libgfortran/generated/in_unpack_r8.c
+++ b/libgfortran/generated/in_unpack_r8.c
@@ -52,7 +52,7 @@ internal_unpack_r8 (gfc_array_r8 * d, const GFC_REAL_8 * src)
for (n = 0; n < dim; n++)
{
count[n] = 0;
- stride[n] = GFC_DESCRIPTOR_STRIDE(d,n);
+ stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(d,n);
if (extent[n] <= 0)
return;
diff --git a/libgfortran/generated/iparity_i1.c b/libgfortran/generated/iparity_i1.c
index fdccc3d4433..9c96e07e2f2 100644
--- a/libgfortran/generated/iparity_i1.c
+++ b/libgfortran/generated/iparity_i1.c
@@ -60,11 +60,11 @@ iparity_i1 (gfc_array_i1 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iparity_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iparity_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iparity_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miparity_i1 (gfc_array_i1 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miparity_i1 (gfc_array_i1 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miparity_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miparity_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miparity_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siparity_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siparity_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iparity_i16.c b/libgfortran/generated/iparity_i16.c
index 7a572ba7130..6a17f4990ca 100644
--- a/libgfortran/generated/iparity_i16.c
+++ b/libgfortran/generated/iparity_i16.c
@@ -60,11 +60,11 @@ iparity_i16 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iparity_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iparity_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iparity_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miparity_i16 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miparity_i16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miparity_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miparity_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miparity_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siparity_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siparity_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iparity_i2.c b/libgfortran/generated/iparity_i2.c
index 49233fbc56d..7fd85d40869 100644
--- a/libgfortran/generated/iparity_i2.c
+++ b/libgfortran/generated/iparity_i2.c
@@ -60,11 +60,11 @@ iparity_i2 (gfc_array_i2 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iparity_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iparity_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iparity_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miparity_i2 (gfc_array_i2 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miparity_i2 (gfc_array_i2 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miparity_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miparity_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miparity_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siparity_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siparity_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iparity_i4.c b/libgfortran/generated/iparity_i4.c
index 1551e51febe..1e03b3cb5d2 100644
--- a/libgfortran/generated/iparity_i4.c
+++ b/libgfortran/generated/iparity_i4.c
@@ -60,11 +60,11 @@ iparity_i4 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iparity_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iparity_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iparity_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miparity_i4 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miparity_i4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miparity_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miparity_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miparity_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siparity_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siparity_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/iparity_i8.c b/libgfortran/generated/iparity_i8.c
index a745bb6bec6..2d7e8407d7e 100644
--- a/libgfortran/generated/iparity_i8.c
+++ b/libgfortran/generated/iparity_i8.c
@@ -60,11 +60,11 @@ iparity_i8 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ iparity_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ iparity_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ iparity_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ miparity_i8 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ miparity_i8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ miparity_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ miparity_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ miparity_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ siparity_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ siparity_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/matmul_c10.c b/libgfortran/generated/matmul_c10.c
index 0ff7d58b9a5..d7af93c88e6 100644
--- a/libgfortran/generated/matmul_c10.c
+++ b/libgfortran/generated/matmul_c10.c
@@ -106,21 +106,22 @@ matmul_c10 (gfc_array_c10 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_COMPLEX_10));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_10));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_10));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_COMPLEX_10));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_c10 (gfc_array_c10 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_c10 (gfc_array_c10 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_c10 (gfc_array_c10 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_c10 (gfc_array_c10 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_c16.c b/libgfortran/generated/matmul_c16.c
index a5fea00c8da..f94e89e09d5 100644
--- a/libgfortran/generated/matmul_c16.c
+++ b/libgfortran/generated/matmul_c16.c
@@ -106,21 +106,22 @@ matmul_c16 (gfc_array_c16 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_COMPLEX_16));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_16));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_16));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_COMPLEX_16));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_c16 (gfc_array_c16 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_c16 (gfc_array_c16 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_c16 (gfc_array_c16 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_c16 (gfc_array_c16 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_c4.c b/libgfortran/generated/matmul_c4.c
index b5b0ecb83ec..5192e0822c2 100644
--- a/libgfortran/generated/matmul_c4.c
+++ b/libgfortran/generated/matmul_c4.c
@@ -106,21 +106,22 @@ matmul_c4 (gfc_array_c4 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_COMPLEX_4));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_4));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_4));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_COMPLEX_4));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_c4 (gfc_array_c4 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_c4 (gfc_array_c4 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_c4 (gfc_array_c4 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_c4 (gfc_array_c4 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_c8.c b/libgfortran/generated/matmul_c8.c
index 077b709df98..93d737fc9d2 100644
--- a/libgfortran/generated/matmul_c8.c
+++ b/libgfortran/generated/matmul_c8.c
@@ -106,21 +106,22 @@ matmul_c8 (gfc_array_c8 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_COMPLEX_8));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_8));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_8));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_COMPLEX_8));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_c8 (gfc_array_c8 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_c8 (gfc_array_c8 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_c8 (gfc_array_c8 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_c8 (gfc_array_c8 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_i1.c b/libgfortran/generated/matmul_i1.c
index 72c998a1b47..07c6ffece24 100644
--- a/libgfortran/generated/matmul_i1.c
+++ b/libgfortran/generated/matmul_i1.c
@@ -106,21 +106,22 @@ matmul_i1 (gfc_array_i1 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_INTEGER_1));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_1));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_1));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_INTEGER_1));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_i1 (gfc_array_i1 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_i1 (gfc_array_i1 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_i1 (gfc_array_i1 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_i1 (gfc_array_i1 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_i16.c b/libgfortran/generated/matmul_i16.c
index 59cd80ba8d0..e477d8b5e80 100644
--- a/libgfortran/generated/matmul_i16.c
+++ b/libgfortran/generated/matmul_i16.c
@@ -106,21 +106,22 @@ matmul_i16 (gfc_array_i16 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_INTEGER_16));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_16));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_16));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_INTEGER_16));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_i16 (gfc_array_i16 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_i16 (gfc_array_i16 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_i16 (gfc_array_i16 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_i16 (gfc_array_i16 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_i2.c b/libgfortran/generated/matmul_i2.c
index 6fddc4f18e2..7b2a5f683f9 100644
--- a/libgfortran/generated/matmul_i2.c
+++ b/libgfortran/generated/matmul_i2.c
@@ -106,21 +106,22 @@ matmul_i2 (gfc_array_i2 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_INTEGER_2));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_2));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_2));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_INTEGER_2));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_i2 (gfc_array_i2 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_i2 (gfc_array_i2 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_i2 (gfc_array_i2 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_i2 (gfc_array_i2 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_i4.c b/libgfortran/generated/matmul_i4.c
index f62cb56aa1b..a650f0ad4f7 100644
--- a/libgfortran/generated/matmul_i4.c
+++ b/libgfortran/generated/matmul_i4.c
@@ -106,21 +106,22 @@ matmul_i4 (gfc_array_i4 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_INTEGER_4));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_4));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_4));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_INTEGER_4));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_i4 (gfc_array_i4 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_i4 (gfc_array_i4 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_i4 (gfc_array_i4 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_i4 (gfc_array_i4 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_i8.c b/libgfortran/generated/matmul_i8.c
index 6d524905ea5..c7efc77f15d 100644
--- a/libgfortran/generated/matmul_i8.c
+++ b/libgfortran/generated/matmul_i8.c
@@ -106,21 +106,22 @@ matmul_i8 (gfc_array_i8 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_INTEGER_8));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_8));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_8));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_INTEGER_8));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_i8 (gfc_array_i8 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_i8 (gfc_array_i8 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_i8 (gfc_array_i8 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_i8 (gfc_array_i8 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_l16.c b/libgfortran/generated/matmul_l16.c
index 370db0731cf..1e016587d03 100644
--- a/libgfortran/generated/matmul_l16.c
+++ b/libgfortran/generated/matmul_l16.c
@@ -69,22 +69,23 @@ matmul_l16 (gfc_array_l16 * const restrict retarray,
{
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DIMENSION_SET (retarray->dim[0], 0,
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_LOGICAL_16));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DIMENSION_SET (retarray->dim[0], 0,
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_16));
}
else
{
- GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DIMENSION_SET (retarray->dim[0], 0,
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_16));
- GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DIMENSION_SET (retarray->dim[1], 0,
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_LOGICAL_16));
}
retarray->base_addr
@@ -134,7 +135,7 @@ matmul_l16 (gfc_array_l16 * const restrict retarray,
}
abase = a->base_addr;
- a_kind = GFC_DESCRIPTOR_SIZE (a);
+ a_kind = GFC_DESCRIPTOR_ELEM_LEN (a);
if (a_kind == 1 || a_kind == 2 || a_kind == 4 || a_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -146,7 +147,7 @@ matmul_l16 (gfc_array_l16 * const restrict retarray,
internal_error (NULL, "Funny sized logical array");
bbase = b->base_addr;
- b_kind = GFC_DESCRIPTOR_SIZE (b);
+ b_kind = GFC_DESCRIPTOR_ELEM_LEN (b);
if (b_kind == 1 || b_kind == 2 || b_kind == 4 || b_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -162,20 +163,20 @@ matmul_l16 (gfc_array_l16 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (retarray) == 1)
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
rystride = rxstride;
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
/* If we have rank 1 parameters, zero the absent stride, and set the size to
one. */
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
- astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0);
+ astride = GFC_DESCRIPTOR_SM(a,0);
count = GFC_DESCRIPTOR_EXTENT(a,0);
xstride = 0;
rxstride = 0;
@@ -183,14 +184,14 @@ matmul_l16 (gfc_array_l16 * const restrict retarray,
}
else
{
- astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,1);
+ astride = GFC_DESCRIPTOR_SM(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
- xstride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0);
+ xstride = GFC_DESCRIPTOR_SM(a,0);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
}
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
- bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0);
+ bstride = GFC_DESCRIPTOR_SM(b,0);
assert(count == GFC_DESCRIPTOR_EXTENT(b,0));
ystride = 0;
rystride = 0;
@@ -198,9 +199,9 @@ matmul_l16 (gfc_array_l16 * const restrict retarray,
}
else
{
- bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0);
+ bstride = GFC_DESCRIPTOR_SM(b,0);
assert(count == GFC_DESCRIPTOR_EXTENT(b,0));
- ystride = GFC_DESCRIPTOR_STRIDE_BYTES(b,1);
+ ystride = GFC_DESCRIPTOR_SM(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_l4.c b/libgfortran/generated/matmul_l4.c
index d901e3cd7d8..2b3d870acc4 100644
--- a/libgfortran/generated/matmul_l4.c
+++ b/libgfortran/generated/matmul_l4.c
@@ -69,22 +69,23 @@ matmul_l4 (gfc_array_l4 * const restrict retarray,
{
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DIMENSION_SET (retarray->dim[0], 0,
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_LOGICAL_4));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DIMENSION_SET (retarray->dim[0], 0,
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_4));
}
else
{
- GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DIMENSION_SET (retarray->dim[0], 0,
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_4));
- GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DIMENSION_SET (retarray->dim[1], 0,
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_LOGICAL_4));
}
retarray->base_addr
@@ -134,7 +135,7 @@ matmul_l4 (gfc_array_l4 * const restrict retarray,
}
abase = a->base_addr;
- a_kind = GFC_DESCRIPTOR_SIZE (a);
+ a_kind = GFC_DESCRIPTOR_ELEM_LEN (a);
if (a_kind == 1 || a_kind == 2 || a_kind == 4 || a_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -146,7 +147,7 @@ matmul_l4 (gfc_array_l4 * const restrict retarray,
internal_error (NULL, "Funny sized logical array");
bbase = b->base_addr;
- b_kind = GFC_DESCRIPTOR_SIZE (b);
+ b_kind = GFC_DESCRIPTOR_ELEM_LEN (b);
if (b_kind == 1 || b_kind == 2 || b_kind == 4 || b_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -162,20 +163,20 @@ matmul_l4 (gfc_array_l4 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (retarray) == 1)
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
rystride = rxstride;
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
/* If we have rank 1 parameters, zero the absent stride, and set the size to
one. */
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
- astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0);
+ astride = GFC_DESCRIPTOR_SM(a,0);
count = GFC_DESCRIPTOR_EXTENT(a,0);
xstride = 0;
rxstride = 0;
@@ -183,14 +184,14 @@ matmul_l4 (gfc_array_l4 * const restrict retarray,
}
else
{
- astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,1);
+ astride = GFC_DESCRIPTOR_SM(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
- xstride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0);
+ xstride = GFC_DESCRIPTOR_SM(a,0);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
}
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
- bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0);
+ bstride = GFC_DESCRIPTOR_SM(b,0);
assert(count == GFC_DESCRIPTOR_EXTENT(b,0));
ystride = 0;
rystride = 0;
@@ -198,9 +199,9 @@ matmul_l4 (gfc_array_l4 * const restrict retarray,
}
else
{
- bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0);
+ bstride = GFC_DESCRIPTOR_SM(b,0);
assert(count == GFC_DESCRIPTOR_EXTENT(b,0));
- ystride = GFC_DESCRIPTOR_STRIDE_BYTES(b,1);
+ ystride = GFC_DESCRIPTOR_SM(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_l8.c b/libgfortran/generated/matmul_l8.c
index 5862c8d870c..bff2852166b 100644
--- a/libgfortran/generated/matmul_l8.c
+++ b/libgfortran/generated/matmul_l8.c
@@ -69,22 +69,23 @@ matmul_l8 (gfc_array_l8 * const restrict retarray,
{
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DIMENSION_SET (retarray->dim[0], 0,
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_LOGICAL_8));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DIMENSION_SET (retarray->dim[0], 0,
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_8));
}
else
{
- GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DIMENSION_SET (retarray->dim[0], 0,
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_8));
- GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DIMENSION_SET (retarray->dim[1], 0,
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_LOGICAL_8));
}
retarray->base_addr
@@ -134,7 +135,7 @@ matmul_l8 (gfc_array_l8 * const restrict retarray,
}
abase = a->base_addr;
- a_kind = GFC_DESCRIPTOR_SIZE (a);
+ a_kind = GFC_DESCRIPTOR_ELEM_LEN (a);
if (a_kind == 1 || a_kind == 2 || a_kind == 4 || a_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -146,7 +147,7 @@ matmul_l8 (gfc_array_l8 * const restrict retarray,
internal_error (NULL, "Funny sized logical array");
bbase = b->base_addr;
- b_kind = GFC_DESCRIPTOR_SIZE (b);
+ b_kind = GFC_DESCRIPTOR_ELEM_LEN (b);
if (b_kind == 1 || b_kind == 2 || b_kind == 4 || b_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -162,20 +163,20 @@ matmul_l8 (gfc_array_l8 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (retarray) == 1)
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
rystride = rxstride;
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
/* If we have rank 1 parameters, zero the absent stride, and set the size to
one. */
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
- astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0);
+ astride = GFC_DESCRIPTOR_SM(a,0);
count = GFC_DESCRIPTOR_EXTENT(a,0);
xstride = 0;
rxstride = 0;
@@ -183,14 +184,14 @@ matmul_l8 (gfc_array_l8 * const restrict retarray,
}
else
{
- astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,1);
+ astride = GFC_DESCRIPTOR_SM(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
- xstride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0);
+ xstride = GFC_DESCRIPTOR_SM(a,0);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
}
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
- bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0);
+ bstride = GFC_DESCRIPTOR_SM(b,0);
assert(count == GFC_DESCRIPTOR_EXTENT(b,0));
ystride = 0;
rystride = 0;
@@ -198,9 +199,9 @@ matmul_l8 (gfc_array_l8 * const restrict retarray,
}
else
{
- bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0);
+ bstride = GFC_DESCRIPTOR_SM(b,0);
assert(count == GFC_DESCRIPTOR_EXTENT(b,0));
- ystride = GFC_DESCRIPTOR_STRIDE_BYTES(b,1);
+ ystride = GFC_DESCRIPTOR_SM(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_r10.c b/libgfortran/generated/matmul_r10.c
index 6c9656adfda..9959f6a9977 100644
--- a/libgfortran/generated/matmul_r10.c
+++ b/libgfortran/generated/matmul_r10.c
@@ -106,21 +106,22 @@ matmul_r10 (gfc_array_r10 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_REAL_10));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_10));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_10));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_REAL_10));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_r10 (gfc_array_r10 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_r10 (gfc_array_r10 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_r10 (gfc_array_r10 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_r10 (gfc_array_r10 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_r16.c b/libgfortran/generated/matmul_r16.c
index fbe8e092884..bc43ca21291 100644
--- a/libgfortran/generated/matmul_r16.c
+++ b/libgfortran/generated/matmul_r16.c
@@ -106,21 +106,22 @@ matmul_r16 (gfc_array_r16 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_REAL_16));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_16));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_16));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_REAL_16));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_r16 (gfc_array_r16 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_r16 (gfc_array_r16 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_r16 (gfc_array_r16 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_r16 (gfc_array_r16 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_r4.c b/libgfortran/generated/matmul_r4.c
index f80c8bfcd2f..8fd3849b726 100644
--- a/libgfortran/generated/matmul_r4.c
+++ b/libgfortran/generated/matmul_r4.c
@@ -106,21 +106,22 @@ matmul_r4 (gfc_array_r4 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_REAL_4));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_4));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_4));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_REAL_4));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_r4 (gfc_array_r4 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_r4 (gfc_array_r4 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_r4 (gfc_array_r4 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_r4 (gfc_array_r4 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/matmul_r8.c b/libgfortran/generated/matmul_r8.c
index 7aec3b3c2af..ca7adb309aa 100644
--- a/libgfortran/generated/matmul_r8.c
+++ b/libgfortran/generated/matmul_r8.c
@@ -106,21 +106,22 @@ matmul_r8 (gfc_array_r8 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_REAL_8));
}
else if (GFC_DESCRIPTOR_RANK (b) == 1)
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_8));
}
else
{
GFC_DIMENSION_SET(retarray->dim[0], 0,
- GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1);
+ GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_8));
GFC_DIMENSION_SET(retarray->dim[1], 0,
- GFC_DESCRIPTOR_EXTENT(b,1) - 1,
- GFC_DESCRIPTOR_EXTENT(retarray,0));
+ GFC_DESCRIPTOR_EXTENT(b,1),
+ GFC_DESCRIPTOR_EXTENT(retarray,0)
+ * sizeof (GFC_REAL_8));
}
retarray->base_addr
@@ -175,19 +176,19 @@ matmul_r8 (gfc_array_r8 * const restrict retarray,
/* One-dimensional result may be addressed in the code below
either as a row or a column matrix. We want both cases to
work. */
- rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
}
else
{
- rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
- rystride = GFC_DESCRIPTOR_STRIDE(retarray,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1);
}
if (GFC_DESCRIPTOR_RANK (a) == 1)
{
/* Treat it as a a row matrix A[1,count]. */
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
aystride = 1;
xcount = 1;
@@ -195,8 +196,8 @@ matmul_r8 (gfc_array_r8 * const restrict retarray,
}
else
{
- axstride = GFC_DESCRIPTOR_STRIDE(a,0);
- aystride = GFC_DESCRIPTOR_STRIDE(a,1);
+ axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0);
+ aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1);
count = GFC_DESCRIPTOR_EXTENT(a,1);
xcount = GFC_DESCRIPTOR_EXTENT(a,0);
@@ -211,7 +212,7 @@ matmul_r8 (gfc_array_r8 * const restrict retarray,
if (GFC_DESCRIPTOR_RANK (b) == 1)
{
/* Treat it as a column matrix B[count,1] */
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
/* bystride should never be used for 1-dimensional b.
in case it is we want it to cause a segfault, rather than
@@ -221,8 +222,8 @@ matmul_r8 (gfc_array_r8 * const restrict retarray,
}
else
{
- bxstride = GFC_DESCRIPTOR_STRIDE(b,0);
- bystride = GFC_DESCRIPTOR_STRIDE(b,1);
+ bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0);
+ bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1);
ycount = GFC_DESCRIPTOR_EXTENT(b,1);
}
diff --git a/libgfortran/generated/maxloc0_16_i1.c b/libgfortran/generated/maxloc0_16_i1.c
index d205d24667c..792f59fb683 100644
--- a/libgfortran/generated/maxloc0_16_i1.c
+++ b/libgfortran/generated/maxloc0_16_i1.c
@@ -55,8 +55,9 @@ maxloc0_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ maxloc0_16_i1 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mmaxloc0_16_i1 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_16_i1 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ smaxloc0_16_i1 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_16_i16.c b/libgfortran/generated/maxloc0_16_i16.c
index 3d8e3dc0fd7..6e35ac7c6f0 100644
--- a/libgfortran/generated/maxloc0_16_i16.c
+++ b/libgfortran/generated/maxloc0_16_i16.c
@@ -55,8 +55,9 @@ maxloc0_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ maxloc0_16_i16 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mmaxloc0_16_i16 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_16_i16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ smaxloc0_16_i16 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_16_i2.c b/libgfortran/generated/maxloc0_16_i2.c
index 93f5cc47732..eaeeab93f58 100644
--- a/libgfortran/generated/maxloc0_16_i2.c
+++ b/libgfortran/generated/maxloc0_16_i2.c
@@ -55,8 +55,9 @@ maxloc0_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ maxloc0_16_i2 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mmaxloc0_16_i2 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_16_i2 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ smaxloc0_16_i2 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_16_i4.c b/libgfortran/generated/maxloc0_16_i4.c
index 6858c8ff7fd..5d8acb0e72b 100644
--- a/libgfortran/generated/maxloc0_16_i4.c
+++ b/libgfortran/generated/maxloc0_16_i4.c
@@ -55,8 +55,9 @@ maxloc0_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ maxloc0_16_i4 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mmaxloc0_16_i4 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_16_i4 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ smaxloc0_16_i4 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_16_i8.c b/libgfortran/generated/maxloc0_16_i8.c
index f324b02fc3a..cd315741ffd 100644
--- a/libgfortran/generated/maxloc0_16_i8.c
+++ b/libgfortran/generated/maxloc0_16_i8.c
@@ -55,8 +55,9 @@ maxloc0_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ maxloc0_16_i8 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mmaxloc0_16_i8 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_16_i8 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ smaxloc0_16_i8 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_16_r10.c b/libgfortran/generated/maxloc0_16_r10.c
index 03560f711f0..089e751dc8a 100644
--- a/libgfortran/generated/maxloc0_16_r10.c
+++ b/libgfortran/generated/maxloc0_16_r10.c
@@ -55,8 +55,9 @@ maxloc0_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ maxloc0_16_r10 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mmaxloc0_16_r10 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_16_r10 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ smaxloc0_16_r10 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_16_r16.c b/libgfortran/generated/maxloc0_16_r16.c
index aeb2e81d2c8..1c423e7847b 100644
--- a/libgfortran/generated/maxloc0_16_r16.c
+++ b/libgfortran/generated/maxloc0_16_r16.c
@@ -55,8 +55,9 @@ maxloc0_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ maxloc0_16_r16 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mmaxloc0_16_r16 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_16_r16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ smaxloc0_16_r16 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_16_r4.c b/libgfortran/generated/maxloc0_16_r4.c
index a88774e954b..28ae3829f95 100644
--- a/libgfortran/generated/maxloc0_16_r4.c
+++ b/libgfortran/generated/maxloc0_16_r4.c
@@ -55,8 +55,9 @@ maxloc0_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ maxloc0_16_r4 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mmaxloc0_16_r4 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_16_r4 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ smaxloc0_16_r4 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_16_r8.c b/libgfortran/generated/maxloc0_16_r8.c
index 8704cad65cb..0f17f337882 100644
--- a/libgfortran/generated/maxloc0_16_r8.c
+++ b/libgfortran/generated/maxloc0_16_r8.c
@@ -55,8 +55,9 @@ maxloc0_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ maxloc0_16_r8 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mmaxloc0_16_r8 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_16_r8 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ smaxloc0_16_r8 (gfc_array_i16 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_4_i1.c b/libgfortran/generated/maxloc0_4_i1.c
index 8e75ec977af..63f8564d8f3 100644
--- a/libgfortran/generated/maxloc0_4_i1.c
+++ b/libgfortran/generated/maxloc0_4_i1.c
@@ -55,8 +55,9 @@ maxloc0_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ maxloc0_4_i1 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mmaxloc0_4_i1 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_4_i1 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ smaxloc0_4_i1 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_4_i16.c b/libgfortran/generated/maxloc0_4_i16.c
index 67383b6c5b0..053fd05fb34 100644
--- a/libgfortran/generated/maxloc0_4_i16.c
+++ b/libgfortran/generated/maxloc0_4_i16.c
@@ -55,8 +55,9 @@ maxloc0_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ maxloc0_4_i16 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mmaxloc0_4_i16 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_4_i16 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ smaxloc0_4_i16 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_4_i2.c b/libgfortran/generated/maxloc0_4_i2.c
index 3991bd6b240..e0ee681f04d 100644
--- a/libgfortran/generated/maxloc0_4_i2.c
+++ b/libgfortran/generated/maxloc0_4_i2.c
@@ -55,8 +55,9 @@ maxloc0_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ maxloc0_4_i2 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mmaxloc0_4_i2 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_4_i2 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ smaxloc0_4_i2 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_4_i4.c b/libgfortran/generated/maxloc0_4_i4.c
index 0a714c3c182..ad793633f9b 100644
--- a/libgfortran/generated/maxloc0_4_i4.c
+++ b/libgfortran/generated/maxloc0_4_i4.c
@@ -55,8 +55,9 @@ maxloc0_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ maxloc0_4_i4 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mmaxloc0_4_i4 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_4_i4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ smaxloc0_4_i4 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_4_i8.c b/libgfortran/generated/maxloc0_4_i8.c
index c32c6fb4f9f..335ad26f815 100644
--- a/libgfortran/generated/maxloc0_4_i8.c
+++ b/libgfortran/generated/maxloc0_4_i8.c
@@ -55,8 +55,9 @@ maxloc0_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ maxloc0_4_i8 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mmaxloc0_4_i8 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_4_i8 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ smaxloc0_4_i8 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_4_r10.c b/libgfortran/generated/maxloc0_4_r10.c
index d2d7f2ef7f1..54701204074 100644
--- a/libgfortran/generated/maxloc0_4_r10.c
+++ b/libgfortran/generated/maxloc0_4_r10.c
@@ -55,8 +55,9 @@ maxloc0_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ maxloc0_4_r10 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mmaxloc0_4_r10 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_4_r10 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ smaxloc0_4_r10 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_4_r16.c b/libgfortran/generated/maxloc0_4_r16.c
index e9d8620f0a5..60352e19f17 100644
--- a/libgfortran/generated/maxloc0_4_r16.c
+++ b/libgfortran/generated/maxloc0_4_r16.c
@@ -55,8 +55,9 @@ maxloc0_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ maxloc0_4_r16 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mmaxloc0_4_r16 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_4_r16 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ smaxloc0_4_r16 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_4_r4.c b/libgfortran/generated/maxloc0_4_r4.c
index c402868def7..af9f83bb909 100644
--- a/libgfortran/generated/maxloc0_4_r4.c
+++ b/libgfortran/generated/maxloc0_4_r4.c
@@ -55,8 +55,9 @@ maxloc0_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ maxloc0_4_r4 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mmaxloc0_4_r4 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_4_r4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ smaxloc0_4_r4 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_4_r8.c b/libgfortran/generated/maxloc0_4_r8.c
index 5057e9c34a7..2c70d47f440 100644
--- a/libgfortran/generated/maxloc0_4_r8.c
+++ b/libgfortran/generated/maxloc0_4_r8.c
@@ -55,8 +55,9 @@ maxloc0_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ maxloc0_4_r8 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mmaxloc0_4_r8 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_4_r8 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ smaxloc0_4_r8 (gfc_array_i4 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_8_i1.c b/libgfortran/generated/maxloc0_8_i1.c
index 95d027dbd32..341fadb8b16 100644
--- a/libgfortran/generated/maxloc0_8_i1.c
+++ b/libgfortran/generated/maxloc0_8_i1.c
@@ -55,8 +55,9 @@ maxloc0_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ maxloc0_8_i1 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mmaxloc0_8_i1 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_8_i1 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ smaxloc0_8_i1 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_8_i16.c b/libgfortran/generated/maxloc0_8_i16.c
index 1fa391b1165..5d4d978b64c 100644
--- a/libgfortran/generated/maxloc0_8_i16.c
+++ b/libgfortran/generated/maxloc0_8_i16.c
@@ -55,8 +55,9 @@ maxloc0_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ maxloc0_8_i16 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mmaxloc0_8_i16 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_8_i16 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ smaxloc0_8_i16 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_8_i2.c b/libgfortran/generated/maxloc0_8_i2.c
index d98a1a25adf..1a19a1fd1db 100644
--- a/libgfortran/generated/maxloc0_8_i2.c
+++ b/libgfortran/generated/maxloc0_8_i2.c
@@ -55,8 +55,9 @@ maxloc0_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ maxloc0_8_i2 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mmaxloc0_8_i2 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_8_i2 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ smaxloc0_8_i2 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_8_i4.c b/libgfortran/generated/maxloc0_8_i4.c
index 56a77487fa0..d3745aa8b6e 100644
--- a/libgfortran/generated/maxloc0_8_i4.c
+++ b/libgfortran/generated/maxloc0_8_i4.c
@@ -55,8 +55,9 @@ maxloc0_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ maxloc0_8_i4 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mmaxloc0_8_i4 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_8_i4 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ smaxloc0_8_i4 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_8_i8.c b/libgfortran/generated/maxloc0_8_i8.c
index dd1fe2c56f4..4ac8ff5fc5c 100644
--- a/libgfortran/generated/maxloc0_8_i8.c
+++ b/libgfortran/generated/maxloc0_8_i8.c
@@ -55,8 +55,9 @@ maxloc0_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ maxloc0_8_i8 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mmaxloc0_8_i8 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_8_i8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ smaxloc0_8_i8 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_8_r10.c b/libgfortran/generated/maxloc0_8_r10.c
index 2c8394cefa6..8bd4d257182 100644
--- a/libgfortran/generated/maxloc0_8_r10.c
+++ b/libgfortran/generated/maxloc0_8_r10.c
@@ -55,8 +55,9 @@ maxloc0_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ maxloc0_8_r10 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mmaxloc0_8_r10 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_8_r10 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ smaxloc0_8_r10 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_8_r16.c b/libgfortran/generated/maxloc0_8_r16.c
index 4ebf6f4738b..33068477d23 100644
--- a/libgfortran/generated/maxloc0_8_r16.c
+++ b/libgfortran/generated/maxloc0_8_r16.c
@@ -55,8 +55,9 @@ maxloc0_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ maxloc0_8_r16 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mmaxloc0_8_r16 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_8_r16 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ smaxloc0_8_r16 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_8_r4.c b/libgfortran/generated/maxloc0_8_r4.c
index 893adadd7fd..7abef9f34a9 100644
--- a/libgfortran/generated/maxloc0_8_r4.c
+++ b/libgfortran/generated/maxloc0_8_r4.c
@@ -55,8 +55,9 @@ maxloc0_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ maxloc0_8_r4 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mmaxloc0_8_r4 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_8_r4 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ smaxloc0_8_r4 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc0_8_r8.c b/libgfortran/generated/maxloc0_8_r8.c
index e2343430a2e..9d163d6ddaa 100644
--- a/libgfortran/generated/maxloc0_8_r8.c
+++ b/libgfortran/generated/maxloc0_8_r8.c
@@ -55,8 +55,9 @@ maxloc0_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ maxloc0_8_r8 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mmaxloc0_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mmaxloc0_8_r8 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mmaxloc0_8_r8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ smaxloc0_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ smaxloc0_8_r8 (gfc_array_i8 * const restrict retarray,
"MAXLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/maxloc1_16_i1.c b/libgfortran/generated/maxloc1_16_i1.c
index 4d1bea09c7c..4bae2d2e0db 100644
--- a/libgfortran/generated/maxloc1_16_i1.c
+++ b/libgfortran/generated/maxloc1_16_i1.c
@@ -61,11 +61,11 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_16_i16.c b/libgfortran/generated/maxloc1_16_i16.c
index eb9b2a0cd62..03d3198c7f9 100644
--- a/libgfortran/generated/maxloc1_16_i16.c
+++ b/libgfortran/generated/maxloc1_16_i16.c
@@ -61,11 +61,11 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_16_i2.c b/libgfortran/generated/maxloc1_16_i2.c
index 91a0800a7ba..d2acb3775a5 100644
--- a/libgfortran/generated/maxloc1_16_i2.c
+++ b/libgfortran/generated/maxloc1_16_i2.c
@@ -61,11 +61,11 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_16_i4.c b/libgfortran/generated/maxloc1_16_i4.c
index c680351674d..cd1650135ec 100644
--- a/libgfortran/generated/maxloc1_16_i4.c
+++ b/libgfortran/generated/maxloc1_16_i4.c
@@ -61,11 +61,11 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_16_i8.c b/libgfortran/generated/maxloc1_16_i8.c
index ea164dc6b3a..0584bf38bba 100644
--- a/libgfortran/generated/maxloc1_16_i8.c
+++ b/libgfortran/generated/maxloc1_16_i8.c
@@ -61,11 +61,11 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_16_r10.c b/libgfortran/generated/maxloc1_16_r10.c
index 4d5ed45a5f4..3c01efb2d6f 100644
--- a/libgfortran/generated/maxloc1_16_r10.c
+++ b/libgfortran/generated/maxloc1_16_r10.c
@@ -61,11 +61,11 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_16_r16.c b/libgfortran/generated/maxloc1_16_r16.c
index 572d91617a1..18fee74173d 100644
--- a/libgfortran/generated/maxloc1_16_r16.c
+++ b/libgfortran/generated/maxloc1_16_r16.c
@@ -61,11 +61,11 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_16_r4.c b/libgfortran/generated/maxloc1_16_r4.c
index d9aef3e63b8..c268600c67b 100644
--- a/libgfortran/generated/maxloc1_16_r4.c
+++ b/libgfortran/generated/maxloc1_16_r4.c
@@ -61,11 +61,11 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_16_r8.c b/libgfortran/generated/maxloc1_16_r8.c
index d1014cdb07d..b3d5141b64f 100644
--- a/libgfortran/generated/maxloc1_16_r8.c
+++ b/libgfortran/generated/maxloc1_16_r8.c
@@ -61,11 +61,11 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_4_i1.c b/libgfortran/generated/maxloc1_4_i1.c
index 1ab44ab6b0e..678181b7e3e 100644
--- a/libgfortran/generated/maxloc1_4_i1.c
+++ b/libgfortran/generated/maxloc1_4_i1.c
@@ -61,11 +61,11 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_4_i16.c b/libgfortran/generated/maxloc1_4_i16.c
index 59bb2a31e39..4f468836fc1 100644
--- a/libgfortran/generated/maxloc1_4_i16.c
+++ b/libgfortran/generated/maxloc1_4_i16.c
@@ -61,11 +61,11 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_4_i2.c b/libgfortran/generated/maxloc1_4_i2.c
index 794fde04d12..89df835d7a3 100644
--- a/libgfortran/generated/maxloc1_4_i2.c
+++ b/libgfortran/generated/maxloc1_4_i2.c
@@ -61,11 +61,11 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_4_i4.c b/libgfortran/generated/maxloc1_4_i4.c
index d10e937365a..86cb7ea74c1 100644
--- a/libgfortran/generated/maxloc1_4_i4.c
+++ b/libgfortran/generated/maxloc1_4_i4.c
@@ -61,11 +61,11 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_4_i8.c b/libgfortran/generated/maxloc1_4_i8.c
index b761b8264e1..76d5aec2c58 100644
--- a/libgfortran/generated/maxloc1_4_i8.c
+++ b/libgfortran/generated/maxloc1_4_i8.c
@@ -61,11 +61,11 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_4_r10.c b/libgfortran/generated/maxloc1_4_r10.c
index f1d522df5cf..6322e19aaf8 100644
--- a/libgfortran/generated/maxloc1_4_r10.c
+++ b/libgfortran/generated/maxloc1_4_r10.c
@@ -61,11 +61,11 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_4_r16.c b/libgfortran/generated/maxloc1_4_r16.c
index deaf571ba89..f2779e49cfe 100644
--- a/libgfortran/generated/maxloc1_4_r16.c
+++ b/libgfortran/generated/maxloc1_4_r16.c
@@ -61,11 +61,11 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_4_r4.c b/libgfortran/generated/maxloc1_4_r4.c
index bc644959958..b5ea02dfedf 100644
--- a/libgfortran/generated/maxloc1_4_r4.c
+++ b/libgfortran/generated/maxloc1_4_r4.c
@@ -61,11 +61,11 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_4_r8.c b/libgfortran/generated/maxloc1_4_r8.c
index af09cb3ecec..0cb7db50d1d 100644
--- a/libgfortran/generated/maxloc1_4_r8.c
+++ b/libgfortran/generated/maxloc1_4_r8.c
@@ -61,11 +61,11 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_8_i1.c b/libgfortran/generated/maxloc1_8_i1.c
index caaabe72d40..4d0827a0d77 100644
--- a/libgfortran/generated/maxloc1_8_i1.c
+++ b/libgfortran/generated/maxloc1_8_i1.c
@@ -61,11 +61,11 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_8_i16.c b/libgfortran/generated/maxloc1_8_i16.c
index 384635c99e0..3f7c2edfedc 100644
--- a/libgfortran/generated/maxloc1_8_i16.c
+++ b/libgfortran/generated/maxloc1_8_i16.c
@@ -61,11 +61,11 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_8_i2.c b/libgfortran/generated/maxloc1_8_i2.c
index 731c7237e17..3be4387b8b3 100644
--- a/libgfortran/generated/maxloc1_8_i2.c
+++ b/libgfortran/generated/maxloc1_8_i2.c
@@ -61,11 +61,11 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_8_i4.c b/libgfortran/generated/maxloc1_8_i4.c
index 26fdf834bb3..4adf1280979 100644
--- a/libgfortran/generated/maxloc1_8_i4.c
+++ b/libgfortran/generated/maxloc1_8_i4.c
@@ -61,11 +61,11 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_8_i8.c b/libgfortran/generated/maxloc1_8_i8.c
index a7f43d15f3e..37f5609fc0c 100644
--- a/libgfortran/generated/maxloc1_8_i8.c
+++ b/libgfortran/generated/maxloc1_8_i8.c
@@ -61,11 +61,11 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_8_r10.c b/libgfortran/generated/maxloc1_8_r10.c
index f996db49589..ec8040e23bf 100644
--- a/libgfortran/generated/maxloc1_8_r10.c
+++ b/libgfortran/generated/maxloc1_8_r10.c
@@ -61,11 +61,11 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_8_r16.c b/libgfortran/generated/maxloc1_8_r16.c
index d3ae5cb36bd..c5e85b1f499 100644
--- a/libgfortran/generated/maxloc1_8_r16.c
+++ b/libgfortran/generated/maxloc1_8_r16.c
@@ -61,11 +61,11 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_8_r4.c b/libgfortran/generated/maxloc1_8_r4.c
index c282cf7035d..ad0fa1dd566 100644
--- a/libgfortran/generated/maxloc1_8_r4.c
+++ b/libgfortran/generated/maxloc1_8_r4.c
@@ -61,11 +61,11 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxloc1_8_r8.c b/libgfortran/generated/maxloc1_8_r8.c
index 13446e0708b..5b9ecf7b691 100644
--- a/libgfortran/generated/maxloc1_8_r8.c
+++ b/libgfortran/generated/maxloc1_8_r8.c
@@ -61,11 +61,11 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ smaxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ smaxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxval_i1.c b/libgfortran/generated/maxval_i1.c
index eadec5ce9fd..708a6b4cd7b 100644
--- a/libgfortran/generated/maxval_i1.c
+++ b/libgfortran/generated/maxval_i1.c
@@ -60,11 +60,11 @@ maxval_i1 (gfc_array_i1 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ maxval_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ maxval_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ maxval_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mmaxval_i1 (gfc_array_i1 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mmaxval_i1 (gfc_array_i1 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mmaxval_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mmaxval_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mmaxval_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ smaxval_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ smaxval_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxval_i16.c b/libgfortran/generated/maxval_i16.c
index b83dd181e76..803949c151f 100644
--- a/libgfortran/generated/maxval_i16.c
+++ b/libgfortran/generated/maxval_i16.c
@@ -60,11 +60,11 @@ maxval_i16 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ maxval_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ maxval_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ maxval_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mmaxval_i16 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mmaxval_i16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mmaxval_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mmaxval_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mmaxval_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ smaxval_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ smaxval_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxval_i2.c b/libgfortran/generated/maxval_i2.c
index 72bb3b4dda0..e77ab736b1f 100644
--- a/libgfortran/generated/maxval_i2.c
+++ b/libgfortran/generated/maxval_i2.c
@@ -60,11 +60,11 @@ maxval_i2 (gfc_array_i2 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ maxval_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ maxval_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ maxval_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mmaxval_i2 (gfc_array_i2 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mmaxval_i2 (gfc_array_i2 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mmaxval_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mmaxval_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mmaxval_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ smaxval_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ smaxval_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxval_i4.c b/libgfortran/generated/maxval_i4.c
index c939a0acd43..29a8c793de9 100644
--- a/libgfortran/generated/maxval_i4.c
+++ b/libgfortran/generated/maxval_i4.c
@@ -60,11 +60,11 @@ maxval_i4 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ maxval_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ maxval_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ maxval_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mmaxval_i4 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mmaxval_i4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mmaxval_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mmaxval_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mmaxval_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ smaxval_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ smaxval_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxval_i8.c b/libgfortran/generated/maxval_i8.c
index 50ee398d289..11de2b01db0 100644
--- a/libgfortran/generated/maxval_i8.c
+++ b/libgfortran/generated/maxval_i8.c
@@ -60,11 +60,11 @@ maxval_i8 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ maxval_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ maxval_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ maxval_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mmaxval_i8 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mmaxval_i8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mmaxval_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mmaxval_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mmaxval_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ smaxval_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ smaxval_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxval_r10.c b/libgfortran/generated/maxval_r10.c
index b16d2634159..0571233f958 100644
--- a/libgfortran/generated/maxval_r10.c
+++ b/libgfortran/generated/maxval_r10.c
@@ -60,11 +60,11 @@ maxval_r10 (gfc_array_r10 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ maxval_r10 (gfc_array_r10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ maxval_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ maxval_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mmaxval_r10 (gfc_array_r10 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mmaxval_r10 (gfc_array_r10 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mmaxval_r10 (gfc_array_r10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mmaxval_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mmaxval_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ smaxval_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ smaxval_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxval_r16.c b/libgfortran/generated/maxval_r16.c
index df6f2b088e9..aef3064eae9 100644
--- a/libgfortran/generated/maxval_r16.c
+++ b/libgfortran/generated/maxval_r16.c
@@ -60,11 +60,11 @@ maxval_r16 (gfc_array_r16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ maxval_r16 (gfc_array_r16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ maxval_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ maxval_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mmaxval_r16 (gfc_array_r16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mmaxval_r16 (gfc_array_r16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mmaxval_r16 (gfc_array_r16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mmaxval_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mmaxval_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ smaxval_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ smaxval_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxval_r4.c b/libgfortran/generated/maxval_r4.c
index edccaeb6567..d82e44bc6f9 100644
--- a/libgfortran/generated/maxval_r4.c
+++ b/libgfortran/generated/maxval_r4.c
@@ -60,11 +60,11 @@ maxval_r4 (gfc_array_r4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ maxval_r4 (gfc_array_r4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ maxval_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ maxval_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mmaxval_r4 (gfc_array_r4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mmaxval_r4 (gfc_array_r4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mmaxval_r4 (gfc_array_r4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mmaxval_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mmaxval_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ smaxval_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ smaxval_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/maxval_r8.c b/libgfortran/generated/maxval_r8.c
index bfbfa981dde..070f87b281a 100644
--- a/libgfortran/generated/maxval_r8.c
+++ b/libgfortran/generated/maxval_r8.c
@@ -60,11 +60,11 @@ maxval_r8 (gfc_array_r8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ maxval_r8 (gfc_array_r8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ maxval_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ maxval_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mmaxval_r8 (gfc_array_r8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mmaxval_r8 (gfc_array_r8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mmaxval_r8 (gfc_array_r8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mmaxval_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mmaxval_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ smaxval_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ smaxval_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc0_16_i1.c b/libgfortran/generated/minloc0_16_i1.c
index ccd89f043a4..d74b3f7d60b 100644
--- a/libgfortran/generated/minloc0_16_i1.c
+++ b/libgfortran/generated/minloc0_16_i1.c
@@ -55,8 +55,9 @@ minloc0_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ minloc0_16_i1 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mminloc0_16_i1 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_16_i1 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ sminloc0_16_i1 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_16_i16.c b/libgfortran/generated/minloc0_16_i16.c
index 65050b9843c..5ae2f39bf92 100644
--- a/libgfortran/generated/minloc0_16_i16.c
+++ b/libgfortran/generated/minloc0_16_i16.c
@@ -55,8 +55,9 @@ minloc0_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ minloc0_16_i16 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mminloc0_16_i16 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_16_i16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ sminloc0_16_i16 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_16_i2.c b/libgfortran/generated/minloc0_16_i2.c
index 9fb63255e3a..8e9df536c36 100644
--- a/libgfortran/generated/minloc0_16_i2.c
+++ b/libgfortran/generated/minloc0_16_i2.c
@@ -55,8 +55,9 @@ minloc0_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ minloc0_16_i2 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mminloc0_16_i2 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_16_i2 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ sminloc0_16_i2 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_16_i4.c b/libgfortran/generated/minloc0_16_i4.c
index 999ac4b50c6..d626e812399 100644
--- a/libgfortran/generated/minloc0_16_i4.c
+++ b/libgfortran/generated/minloc0_16_i4.c
@@ -55,8 +55,9 @@ minloc0_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ minloc0_16_i4 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mminloc0_16_i4 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_16_i4 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ sminloc0_16_i4 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_16_i8.c b/libgfortran/generated/minloc0_16_i8.c
index 3c2e3c3a9b3..bf611b6b3c2 100644
--- a/libgfortran/generated/minloc0_16_i8.c
+++ b/libgfortran/generated/minloc0_16_i8.c
@@ -55,8 +55,9 @@ minloc0_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ minloc0_16_i8 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mminloc0_16_i8 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_16_i8 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ sminloc0_16_i8 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_16_r10.c b/libgfortran/generated/minloc0_16_r10.c
index c661cdc0f6c..fa6bc79aa84 100644
--- a/libgfortran/generated/minloc0_16_r10.c
+++ b/libgfortran/generated/minloc0_16_r10.c
@@ -55,8 +55,9 @@ minloc0_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ minloc0_16_r10 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mminloc0_16_r10 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_16_r10 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ sminloc0_16_r10 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_16_r16.c b/libgfortran/generated/minloc0_16_r16.c
index c455e92de7f..b1ae2e1d1ec 100644
--- a/libgfortran/generated/minloc0_16_r16.c
+++ b/libgfortran/generated/minloc0_16_r16.c
@@ -55,8 +55,9 @@ minloc0_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ minloc0_16_r16 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mminloc0_16_r16 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_16_r16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ sminloc0_16_r16 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_16_r4.c b/libgfortran/generated/minloc0_16_r4.c
index 779935e4ffe..0cbe3382531 100644
--- a/libgfortran/generated/minloc0_16_r4.c
+++ b/libgfortran/generated/minloc0_16_r4.c
@@ -55,8 +55,9 @@ minloc0_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ minloc0_16_r4 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mminloc0_16_r4 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_16_r4 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ sminloc0_16_r4 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_16_r8.c b/libgfortran/generated/minloc0_16_r8.c
index d9023767772..40f33c3af20 100644
--- a/libgfortran/generated/minloc0_16_r8.c
+++ b/libgfortran/generated/minloc0_16_r8.c
@@ -55,8 +55,9 @@ minloc0_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -67,11 +68,11 @@ minloc0_16_r8 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -213,7 +215,7 @@ mminloc0_16_r8 (gfc_array_i16 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_16_r8 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
@@ -375,7 +376,7 @@ sminloc0_16_r8 (gfc_array_i16 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_4_i1.c b/libgfortran/generated/minloc0_4_i1.c
index a9e902dd365..6e88e0077fc 100644
--- a/libgfortran/generated/minloc0_4_i1.c
+++ b/libgfortran/generated/minloc0_4_i1.c
@@ -55,8 +55,9 @@ minloc0_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ minloc0_4_i1 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mminloc0_4_i1 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_4_i1 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ sminloc0_4_i1 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_4_i16.c b/libgfortran/generated/minloc0_4_i16.c
index 7981c28ba00..62399930b3b 100644
--- a/libgfortran/generated/minloc0_4_i16.c
+++ b/libgfortran/generated/minloc0_4_i16.c
@@ -55,8 +55,9 @@ minloc0_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ minloc0_4_i16 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mminloc0_4_i16 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_4_i16 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ sminloc0_4_i16 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_4_i2.c b/libgfortran/generated/minloc0_4_i2.c
index 59439faa092..9f9ec121fbb 100644
--- a/libgfortran/generated/minloc0_4_i2.c
+++ b/libgfortran/generated/minloc0_4_i2.c
@@ -55,8 +55,9 @@ minloc0_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ minloc0_4_i2 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mminloc0_4_i2 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_4_i2 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ sminloc0_4_i2 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_4_i4.c b/libgfortran/generated/minloc0_4_i4.c
index 5731a43ea77..05cdab8929d 100644
--- a/libgfortran/generated/minloc0_4_i4.c
+++ b/libgfortran/generated/minloc0_4_i4.c
@@ -55,8 +55,9 @@ minloc0_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ minloc0_4_i4 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mminloc0_4_i4 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_4_i4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ sminloc0_4_i4 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_4_i8.c b/libgfortran/generated/minloc0_4_i8.c
index 50b8e1612e3..b8602cad787 100644
--- a/libgfortran/generated/minloc0_4_i8.c
+++ b/libgfortran/generated/minloc0_4_i8.c
@@ -55,8 +55,9 @@ minloc0_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ minloc0_4_i8 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mminloc0_4_i8 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_4_i8 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ sminloc0_4_i8 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_4_r10.c b/libgfortran/generated/minloc0_4_r10.c
index 2701a859f54..b30bb8633f0 100644
--- a/libgfortran/generated/minloc0_4_r10.c
+++ b/libgfortran/generated/minloc0_4_r10.c
@@ -55,8 +55,9 @@ minloc0_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ minloc0_4_r10 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mminloc0_4_r10 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_4_r10 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ sminloc0_4_r10 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_4_r16.c b/libgfortran/generated/minloc0_4_r16.c
index fca50b39ea9..721d39cdca9 100644
--- a/libgfortran/generated/minloc0_4_r16.c
+++ b/libgfortran/generated/minloc0_4_r16.c
@@ -55,8 +55,9 @@ minloc0_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ minloc0_4_r16 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mminloc0_4_r16 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_4_r16 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ sminloc0_4_r16 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_4_r4.c b/libgfortran/generated/minloc0_4_r4.c
index 0469a5280d0..2babc439f01 100644
--- a/libgfortran/generated/minloc0_4_r4.c
+++ b/libgfortran/generated/minloc0_4_r4.c
@@ -55,8 +55,9 @@ minloc0_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ minloc0_4_r4 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mminloc0_4_r4 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_4_r4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ sminloc0_4_r4 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_4_r8.c b/libgfortran/generated/minloc0_4_r8.c
index 7be43c4af24..ff8ff5f6cf0 100644
--- a/libgfortran/generated/minloc0_4_r8.c
+++ b/libgfortran/generated/minloc0_4_r8.c
@@ -55,8 +55,9 @@ minloc0_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -67,11 +68,11 @@ minloc0_4_r8 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -213,7 +215,7 @@ mminloc0_4_r8 (gfc_array_i4 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_4_r8 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
@@ -375,7 +376,7 @@ sminloc0_4_r8 (gfc_array_i4 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_8_i1.c b/libgfortran/generated/minloc0_8_i1.c
index 60bfe811cdc..3c8700e4204 100644
--- a/libgfortran/generated/minloc0_8_i1.c
+++ b/libgfortran/generated/minloc0_8_i1.c
@@ -55,8 +55,9 @@ minloc0_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ minloc0_8_i1 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mminloc0_8_i1 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_8_i1 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ sminloc0_8_i1 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_8_i16.c b/libgfortran/generated/minloc0_8_i16.c
index 27ddd4f9923..945ec4c9c8f 100644
--- a/libgfortran/generated/minloc0_8_i16.c
+++ b/libgfortran/generated/minloc0_8_i16.c
@@ -55,8 +55,9 @@ minloc0_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ minloc0_8_i16 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mminloc0_8_i16 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_8_i16 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ sminloc0_8_i16 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_8_i2.c b/libgfortran/generated/minloc0_8_i2.c
index 38a4aa64ed4..2511b339af3 100644
--- a/libgfortran/generated/minloc0_8_i2.c
+++ b/libgfortran/generated/minloc0_8_i2.c
@@ -55,8 +55,9 @@ minloc0_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ minloc0_8_i2 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mminloc0_8_i2 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_8_i2 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ sminloc0_8_i2 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_8_i4.c b/libgfortran/generated/minloc0_8_i4.c
index 5586ea9fae4..58fe1023518 100644
--- a/libgfortran/generated/minloc0_8_i4.c
+++ b/libgfortran/generated/minloc0_8_i4.c
@@ -55,8 +55,9 @@ minloc0_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ minloc0_8_i4 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mminloc0_8_i4 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_8_i4 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ sminloc0_8_i4 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_8_i8.c b/libgfortran/generated/minloc0_8_i8.c
index 1f21d2657d9..f1bc31e2e29 100644
--- a/libgfortran/generated/minloc0_8_i8.c
+++ b/libgfortran/generated/minloc0_8_i8.c
@@ -55,8 +55,9 @@ minloc0_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ minloc0_8_i8 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mminloc0_8_i8 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_8_i8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ sminloc0_8_i8 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_8_r10.c b/libgfortran/generated/minloc0_8_r10.c
index df34ca3336c..e2bf5273b7a 100644
--- a/libgfortran/generated/minloc0_8_r10.c
+++ b/libgfortran/generated/minloc0_8_r10.c
@@ -55,8 +55,9 @@ minloc0_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ minloc0_8_r10 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mminloc0_8_r10 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_8_r10 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ sminloc0_8_r10 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_8_r16.c b/libgfortran/generated/minloc0_8_r16.c
index d8769ec950e..dbe35d08cad 100644
--- a/libgfortran/generated/minloc0_8_r16.c
+++ b/libgfortran/generated/minloc0_8_r16.c
@@ -55,8 +55,9 @@ minloc0_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ minloc0_8_r16 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mminloc0_8_r16 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_8_r16 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ sminloc0_8_r16 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_8_r4.c b/libgfortran/generated/minloc0_8_r4.c
index b8ab0c9903c..2db1a110fb3 100644
--- a/libgfortran/generated/minloc0_8_r4.c
+++ b/libgfortran/generated/minloc0_8_r4.c
@@ -55,8 +55,9 @@ minloc0_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ minloc0_8_r4 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mminloc0_8_r4 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_8_r4 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ sminloc0_8_r4 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc0_8_r8.c b/libgfortran/generated/minloc0_8_r8.c
index ff67f1ed5e3..2a492c6f1b8 100644
--- a/libgfortran/generated/minloc0_8_r8.c
+++ b/libgfortran/generated/minloc0_8_r8.c
@@ -55,8 +55,9 @@ minloc0_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -67,11 +68,11 @@ minloc0_8_r8 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -196,8 +197,9 @@ mminloc0_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
+ retarray->elem_len = retarray->elem_len;
+ retarray->type = retarray->type;
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -213,7 +215,7 @@ mminloc0_8_r8 (gfc_array_i8 * const restrict retarray,
}
}
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
mbase = mask->base_addr;
@@ -226,12 +228,12 @@ mminloc0_8_r8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
count[n] = 0;
if (extent[n] <= 0)
@@ -364,8 +366,7 @@ sminloc0_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1);
- retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
+ GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
retarray->offset = 0;
retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
@@ -375,7 +376,7 @@ sminloc0_8_r8 (gfc_array_i8 * const restrict retarray,
"MINLOC");
}
- dstride = GFC_DESCRIPTOR_STRIDE(retarray,0);
+ dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0);
dest = retarray->base_addr;
for (n = 0; n<rank; n++)
dest[n * dstride] = 0 ;
diff --git a/libgfortran/generated/minloc1_16_i1.c b/libgfortran/generated/minloc1_16_i1.c
index a9b2d96b1cc..a9ef738c4f7 100644
--- a/libgfortran/generated/minloc1_16_i1.c
+++ b/libgfortran/generated/minloc1_16_i1.c
@@ -61,11 +61,11 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_16_i1 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_16_i1 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_16_i1 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_16_i1 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_16_i1 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_16_i1 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_16_i16.c b/libgfortran/generated/minloc1_16_i16.c
index 1e52c222033..f4b422aea62 100644
--- a/libgfortran/generated/minloc1_16_i16.c
+++ b/libgfortran/generated/minloc1_16_i16.c
@@ -61,11 +61,11 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_16_i16 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_16_i16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_16_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_16_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_16_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_16_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_16_i2.c b/libgfortran/generated/minloc1_16_i2.c
index 7617b9e32b5..a035ef35ef2 100644
--- a/libgfortran/generated/minloc1_16_i2.c
+++ b/libgfortran/generated/minloc1_16_i2.c
@@ -61,11 +61,11 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_16_i2 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_16_i2 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_16_i2 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_16_i2 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_16_i2 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_16_i2 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_16_i4.c b/libgfortran/generated/minloc1_16_i4.c
index 9729d11bce8..71140968e5b 100644
--- a/libgfortran/generated/minloc1_16_i4.c
+++ b/libgfortran/generated/minloc1_16_i4.c
@@ -61,11 +61,11 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_16_i4 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_16_i4 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_16_i4 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_16_i4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_16_i4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_16_i4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_16_i8.c b/libgfortran/generated/minloc1_16_i8.c
index 00421b23540..a9a1f0a571e 100644
--- a/libgfortran/generated/minloc1_16_i8.c
+++ b/libgfortran/generated/minloc1_16_i8.c
@@ -61,11 +61,11 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_16_i8 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_16_i8 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_16_i8 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_16_i8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_16_i8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_16_i8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_16_r10.c b/libgfortran/generated/minloc1_16_r10.c
index fb1401b9517..95f6b9263a8 100644
--- a/libgfortran/generated/minloc1_16_r10.c
+++ b/libgfortran/generated/minloc1_16_r10.c
@@ -61,11 +61,11 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_16_r10 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_16_r10 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_16_r10 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_16_r10 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_16_r10 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_16_r10 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_16_r16.c b/libgfortran/generated/minloc1_16_r16.c
index 031286809e6..26f7f4cfd65 100644
--- a/libgfortran/generated/minloc1_16_r16.c
+++ b/libgfortran/generated/minloc1_16_r16.c
@@ -61,11 +61,11 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_16_r16 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_16_r16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_16_r16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_16_r16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_16_r16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_16_r16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_16_r4.c b/libgfortran/generated/minloc1_16_r4.c
index af5b67d900b..81149b6e4b9 100644
--- a/libgfortran/generated/minloc1_16_r4.c
+++ b/libgfortran/generated/minloc1_16_r4.c
@@ -61,11 +61,11 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_16_r4 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_16_r4 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_16_r4 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_16_r4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_16_r4 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_16_r4 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_16_r8.c b/libgfortran/generated/minloc1_16_r8.c
index dd2be3bb4de..3404c2493a9 100644
--- a/libgfortran/generated/minloc1_16_r8.c
+++ b/libgfortran/generated/minloc1_16_r8.c
@@ -61,11 +61,11 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_16_r8 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_16_r8 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_16_r8 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_16_r8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_16_r8 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_16_r8 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_4_i1.c b/libgfortran/generated/minloc1_4_i1.c
index b0bf6efba8a..b71337b6745 100644
--- a/libgfortran/generated/minloc1_4_i1.c
+++ b/libgfortran/generated/minloc1_4_i1.c
@@ -61,11 +61,11 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_4_i1 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_4_i1 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_4_i1 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_4_i1 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_4_i1 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_4_i1 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_4_i16.c b/libgfortran/generated/minloc1_4_i16.c
index 882b4b41744..1fb9219ff34 100644
--- a/libgfortran/generated/minloc1_4_i16.c
+++ b/libgfortran/generated/minloc1_4_i16.c
@@ -61,11 +61,11 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_4_i16 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_4_i16 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_4_i16 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_4_i16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_4_i16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_4_i16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_4_i2.c b/libgfortran/generated/minloc1_4_i2.c
index 877af7a5a0c..e61bf95ab5f 100644
--- a/libgfortran/generated/minloc1_4_i2.c
+++ b/libgfortran/generated/minloc1_4_i2.c
@@ -61,11 +61,11 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_4_i2 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_4_i2 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_4_i2 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_4_i2 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_4_i2 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_4_i2 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_4_i4.c b/libgfortran/generated/minloc1_4_i4.c
index 3a872706d12..64cf2daa98a 100644
--- a/libgfortran/generated/minloc1_4_i4.c
+++ b/libgfortran/generated/minloc1_4_i4.c
@@ -61,11 +61,11 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_4_i4 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_4_i4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_4_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_4_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_4_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_4_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_4_i8.c b/libgfortran/generated/minloc1_4_i8.c
index 22e43bf6c85..ab74930c337 100644
--- a/libgfortran/generated/minloc1_4_i8.c
+++ b/libgfortran/generated/minloc1_4_i8.c
@@ -61,11 +61,11 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_4_i8 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_4_i8 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_4_i8 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_4_i8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_4_i8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_4_i8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_4_r10.c b/libgfortran/generated/minloc1_4_r10.c
index 624006cd694..fd0b874a90b 100644
--- a/libgfortran/generated/minloc1_4_r10.c
+++ b/libgfortran/generated/minloc1_4_r10.c
@@ -61,11 +61,11 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_4_r10 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_4_r10 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_4_r10 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_4_r10 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_4_r10 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_4_r10 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_4_r16.c b/libgfortran/generated/minloc1_4_r16.c
index f32b6082522..186f18b993f 100644
--- a/libgfortran/generated/minloc1_4_r16.c
+++ b/libgfortran/generated/minloc1_4_r16.c
@@ -61,11 +61,11 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_4_r16 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_4_r16 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_4_r16 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_4_r16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_4_r16 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_4_r16 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_4_r4.c b/libgfortran/generated/minloc1_4_r4.c
index 0ed5fe96e7b..939692473ed 100644
--- a/libgfortran/generated/minloc1_4_r4.c
+++ b/libgfortran/generated/minloc1_4_r4.c
@@ -61,11 +61,11 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_4_r4 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_4_r4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_4_r4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_4_r4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_4_r4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_4_r4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_4_r8.c b/libgfortran/generated/minloc1_4_r8.c
index c780a42aa2e..dce1851b005 100644
--- a/libgfortran/generated/minloc1_4_r8.c
+++ b/libgfortran/generated/minloc1_4_r8.c
@@ -61,11 +61,11 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_4_r8 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_4_r8 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_4_r8 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_4_r8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_4_r8 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_4_r8 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_8_i1.c b/libgfortran/generated/minloc1_8_i1.c
index 6f8c7d9443c..0c43c925c35 100644
--- a/libgfortran/generated/minloc1_8_i1.c
+++ b/libgfortran/generated/minloc1_8_i1.c
@@ -61,11 +61,11 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_8_i1 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_8_i1 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_8_i1 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_8_i1 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_8_i1 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_8_i1 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_8_i16.c b/libgfortran/generated/minloc1_8_i16.c
index 07cb01171a1..f0d218134cb 100644
--- a/libgfortran/generated/minloc1_8_i16.c
+++ b/libgfortran/generated/minloc1_8_i16.c
@@ -61,11 +61,11 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_8_i16 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_8_i16 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_8_i16 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_8_i16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_8_i16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_8_i16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_8_i2.c b/libgfortran/generated/minloc1_8_i2.c
index 9ea0bf4c342..fe5ffd876ec 100644
--- a/libgfortran/generated/minloc1_8_i2.c
+++ b/libgfortran/generated/minloc1_8_i2.c
@@ -61,11 +61,11 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_8_i2 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_8_i2 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_8_i2 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_8_i2 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_8_i2 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_8_i2 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_8_i4.c b/libgfortran/generated/minloc1_8_i4.c
index 5e433cc1dea..30097d0b307 100644
--- a/libgfortran/generated/minloc1_8_i4.c
+++ b/libgfortran/generated/minloc1_8_i4.c
@@ -61,11 +61,11 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_8_i4 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_8_i4 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_8_i4 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_8_i4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_8_i4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_8_i4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_8_i8.c b/libgfortran/generated/minloc1_8_i8.c
index 364cf324959..76e4c11df2a 100644
--- a/libgfortran/generated/minloc1_8_i8.c
+++ b/libgfortran/generated/minloc1_8_i8.c
@@ -61,11 +61,11 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_8_i8 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_8_i8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_8_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_8_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_8_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_8_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_8_r10.c b/libgfortran/generated/minloc1_8_r10.c
index 901cf91a3f6..df42b81cd5f 100644
--- a/libgfortran/generated/minloc1_8_r10.c
+++ b/libgfortran/generated/minloc1_8_r10.c
@@ -61,11 +61,11 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_8_r10 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_8_r10 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_8_r10 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_8_r10 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_8_r10 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_8_r10 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_8_r16.c b/libgfortran/generated/minloc1_8_r16.c
index 7bf17ea37ef..d10725402c0 100644
--- a/libgfortran/generated/minloc1_8_r16.c
+++ b/libgfortran/generated/minloc1_8_r16.c
@@ -61,11 +61,11 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_8_r16 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_8_r16 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_8_r16 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_8_r16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_8_r16 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_8_r16 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_8_r4.c b/libgfortran/generated/minloc1_8_r4.c
index 5edb92f9958..77450ac6b52 100644
--- a/libgfortran/generated/minloc1_8_r4.c
+++ b/libgfortran/generated/minloc1_8_r4.c
@@ -61,11 +61,11 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_8_r4 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_8_r4 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_8_r4 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_8_r4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_8_r4 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_8_r4 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minloc1_8_r8.c b/libgfortran/generated/minloc1_8_r8.c
index 405b9e1834b..ce72c0de849 100644
--- a/libgfortran/generated/minloc1_8_r8.c
+++ b/libgfortran/generated/minloc1_8_r8.c
@@ -61,11 +61,11 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -244,7 +245,7 @@ mminloc1_8_r8 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -255,13 +256,13 @@ mminloc1_8_r8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -270,8 +271,8 @@ mminloc1_8_r8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -280,23 +281,24 @@ mminloc1_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -325,7 +327,7 @@ mminloc1_8_r8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -467,23 +469,23 @@ sminloc1_8_r8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -521,7 +523,7 @@ sminloc1_8_r8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minval_i1.c b/libgfortran/generated/minval_i1.c
index da7405b2830..723aa549de0 100644
--- a/libgfortran/generated/minval_i1.c
+++ b/libgfortran/generated/minval_i1.c
@@ -60,11 +60,11 @@ minval_i1 (gfc_array_i1 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ minval_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ minval_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ minval_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mminval_i1 (gfc_array_i1 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mminval_i1 (gfc_array_i1 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mminval_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mminval_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mminval_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ sminval_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ sminval_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minval_i16.c b/libgfortran/generated/minval_i16.c
index 11cbeac5ff6..2679fc86945 100644
--- a/libgfortran/generated/minval_i16.c
+++ b/libgfortran/generated/minval_i16.c
@@ -60,11 +60,11 @@ minval_i16 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ minval_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ minval_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ minval_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mminval_i16 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mminval_i16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mminval_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mminval_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mminval_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ sminval_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ sminval_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minval_i2.c b/libgfortran/generated/minval_i2.c
index e208b57e2ee..b18c4331b91 100644
--- a/libgfortran/generated/minval_i2.c
+++ b/libgfortran/generated/minval_i2.c
@@ -60,11 +60,11 @@ minval_i2 (gfc_array_i2 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ minval_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ minval_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ minval_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mminval_i2 (gfc_array_i2 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mminval_i2 (gfc_array_i2 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mminval_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mminval_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mminval_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ sminval_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ sminval_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minval_i4.c b/libgfortran/generated/minval_i4.c
index 68ba76e8d4c..adebe0c26cd 100644
--- a/libgfortran/generated/minval_i4.c
+++ b/libgfortran/generated/minval_i4.c
@@ -60,11 +60,11 @@ minval_i4 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ minval_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ minval_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ minval_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mminval_i4 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mminval_i4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mminval_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mminval_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mminval_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ sminval_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ sminval_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minval_i8.c b/libgfortran/generated/minval_i8.c
index b089358d048..764d4649f41 100644
--- a/libgfortran/generated/minval_i8.c
+++ b/libgfortran/generated/minval_i8.c
@@ -60,11 +60,11 @@ minval_i8 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ minval_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ minval_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ minval_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mminval_i8 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mminval_i8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mminval_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mminval_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mminval_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ sminval_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ sminval_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minval_r10.c b/libgfortran/generated/minval_r10.c
index e9e6afee615..091919be105 100644
--- a/libgfortran/generated/minval_r10.c
+++ b/libgfortran/generated/minval_r10.c
@@ -60,11 +60,11 @@ minval_r10 (gfc_array_r10 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ minval_r10 (gfc_array_r10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ minval_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ minval_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mminval_r10 (gfc_array_r10 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mminval_r10 (gfc_array_r10 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mminval_r10 (gfc_array_r10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mminval_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mminval_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ sminval_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ sminval_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minval_r16.c b/libgfortran/generated/minval_r16.c
index e4e38275d3f..0f270d55701 100644
--- a/libgfortran/generated/minval_r16.c
+++ b/libgfortran/generated/minval_r16.c
@@ -60,11 +60,11 @@ minval_r16 (gfc_array_r16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ minval_r16 (gfc_array_r16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ minval_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ minval_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mminval_r16 (gfc_array_r16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mminval_r16 (gfc_array_r16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mminval_r16 (gfc_array_r16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mminval_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mminval_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ sminval_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ sminval_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minval_r4.c b/libgfortran/generated/minval_r4.c
index 515b2db4976..8e7068348db 100644
--- a/libgfortran/generated/minval_r4.c
+++ b/libgfortran/generated/minval_r4.c
@@ -60,11 +60,11 @@ minval_r4 (gfc_array_r4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ minval_r4 (gfc_array_r4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ minval_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ minval_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mminval_r4 (gfc_array_r4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mminval_r4 (gfc_array_r4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mminval_r4 (gfc_array_r4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mminval_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mminval_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ sminval_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ sminval_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/minval_r8.c b/libgfortran/generated/minval_r8.c
index c61656f874e..99523caad2f 100644
--- a/libgfortran/generated/minval_r8.c
+++ b/libgfortran/generated/minval_r8.c
@@ -60,11 +60,11 @@ minval_r8 (gfc_array_r8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ minval_r8 (gfc_array_r8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ minval_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ minval_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -236,7 +237,7 @@ mminval_r8 (gfc_array_r8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -247,13 +248,13 @@ mminval_r8 (gfc_array_r8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -262,8 +263,8 @@ mminval_r8 (gfc_array_r8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -272,23 +273,24 @@ mminval_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -317,7 +319,7 @@ mminval_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -454,23 +456,23 @@ sminval_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -508,7 +510,7 @@ sminval_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/norm2_r10.c b/libgfortran/generated/norm2_r10.c
index 0145c99b652..d414e6dadea 100644
--- a/libgfortran/generated/norm2_r10.c
+++ b/libgfortran/generated/norm2_r10.c
@@ -64,11 +64,11 @@ norm2_r10 (gfc_array_r10 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ norm2_r10 (gfc_array_r10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -85,23 +85,24 @@ norm2_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10));
if (alloc_size == 0)
@@ -128,7 +129,7 @@ norm2_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/norm2_r16.c b/libgfortran/generated/norm2_r16.c
index 46329d52329..da4445a35d2 100644
--- a/libgfortran/generated/norm2_r16.c
+++ b/libgfortran/generated/norm2_r16.c
@@ -68,11 +68,11 @@ norm2_r16 (gfc_array_r16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -80,7 +80,7 @@ norm2_r16 (gfc_array_r16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -89,23 +89,24 @@ norm2_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16));
if (alloc_size == 0)
@@ -132,7 +133,7 @@ norm2_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/norm2_r4.c b/libgfortran/generated/norm2_r4.c
index 067dbee6292..5e7a2b9382b 100644
--- a/libgfortran/generated/norm2_r4.c
+++ b/libgfortran/generated/norm2_r4.c
@@ -64,11 +64,11 @@ norm2_r4 (gfc_array_r4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ norm2_r4 (gfc_array_r4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -85,23 +85,24 @@ norm2_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4));
if (alloc_size == 0)
@@ -128,7 +129,7 @@ norm2_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/norm2_r8.c b/libgfortran/generated/norm2_r8.c
index 51c89427a4a..f96f8a45ac5 100644
--- a/libgfortran/generated/norm2_r8.c
+++ b/libgfortran/generated/norm2_r8.c
@@ -64,11 +64,11 @@ norm2_r8 (gfc_array_r8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -76,7 +76,7 @@ norm2_r8 (gfc_array_r8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -85,23 +85,24 @@ norm2_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8));
if (alloc_size == 0)
@@ -128,7 +129,7 @@ norm2_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/pack_c10.c b/libgfortran/generated/pack_c10.c
index 90866a840d1..28ecabf8cd0 100644
--- a/libgfortran/generated/pack_c10.c
+++ b/libgfortran/generated/pack_c10.c
@@ -103,7 +103,7 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_COMPLEX_10));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_c16.c b/libgfortran/generated/pack_c16.c
index 60f60d1e43d..05e0fc3525e 100644
--- a/libgfortran/generated/pack_c16.c
+++ b/libgfortran/generated/pack_c16.c
@@ -103,7 +103,7 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_COMPLEX_16));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_c4.c b/libgfortran/generated/pack_c4.c
index 36a9f941c73..39695ada844 100644
--- a/libgfortran/generated/pack_c4.c
+++ b/libgfortran/generated/pack_c4.c
@@ -103,7 +103,7 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_COMPLEX_4));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_c8.c b/libgfortran/generated/pack_c8.c
index 38880c1831a..f3478e7ce8e 100644
--- a/libgfortran/generated/pack_c8.c
+++ b/libgfortran/generated/pack_c8.c
@@ -103,7 +103,7 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_COMPLEX_8));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_i1.c b/libgfortran/generated/pack_i1.c
index 933cf9ab796..e87ef18730d 100644
--- a/libgfortran/generated/pack_i1.c
+++ b/libgfortran/generated/pack_i1.c
@@ -103,7 +103,7 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_INTEGER_1));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_i16.c b/libgfortran/generated/pack_i16.c
index 01d32ad0fad..d57d303ccd8 100644
--- a/libgfortran/generated/pack_i16.c
+++ b/libgfortran/generated/pack_i16.c
@@ -103,7 +103,7 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_INTEGER_16));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_i2.c b/libgfortran/generated/pack_i2.c
index de329abf11a..4059e21c9a4 100644
--- a/libgfortran/generated/pack_i2.c
+++ b/libgfortran/generated/pack_i2.c
@@ -103,7 +103,7 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_INTEGER_2));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_i4.c b/libgfortran/generated/pack_i4.c
index 93ac356f81a..190095e8fbe 100644
--- a/libgfortran/generated/pack_i4.c
+++ b/libgfortran/generated/pack_i4.c
@@ -103,7 +103,7 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_INTEGER_4));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_i8.c b/libgfortran/generated/pack_i8.c
index ec7b4275c3d..a9d2f9d11e7 100644
--- a/libgfortran/generated/pack_i8.c
+++ b/libgfortran/generated/pack_i8.c
@@ -103,7 +103,7 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_INTEGER_8));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_r10.c b/libgfortran/generated/pack_r10.c
index 8b3e81693a5..e89c5298962 100644
--- a/libgfortran/generated/pack_r10.c
+++ b/libgfortran/generated/pack_r10.c
@@ -103,7 +103,7 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_REAL_10));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_r16.c b/libgfortran/generated/pack_r16.c
index 598ef8e576a..4b3e7561526 100644
--- a/libgfortran/generated/pack_r16.c
+++ b/libgfortran/generated/pack_r16.c
@@ -103,7 +103,7 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_REAL_16));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_r4.c b/libgfortran/generated/pack_r4.c
index 955a812d248..14e7914f68e 100644
--- a/libgfortran/generated/pack_r4.c
+++ b/libgfortran/generated/pack_r4.c
@@ -103,7 +103,7 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_REAL_4));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/pack_r8.c b/libgfortran/generated/pack_r8.c
index d0bb227e163..07e29f7c5b1 100644
--- a/libgfortran/generated/pack_r8.c
+++ b/libgfortran/generated/pack_r8.c
@@ -103,7 +103,7 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -125,8 +125,8 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array,
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] <= 0)
zero_sized = 1;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (sstride[0] == 0)
sstride[0] = 1;
@@ -163,7 +163,7 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array,
if (ret->base_addr == NULL)
{
/* Setup the array descriptor. */
- GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_REAL_8));
ret->offset = 0;
@@ -186,7 +186,7 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array,
}
}
- rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0);
+ rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (rstride0 == 0)
rstride0 = 1;
sstride0 = sstride[0];
@@ -239,7 +239,7 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array,
nelem = ((rptr - ret->base_addr) / rstride0);
if (n > nelem)
{
- sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (sstride0 == 0)
sstride0 = 1;
diff --git a/libgfortran/generated/parity_l1.c b/libgfortran/generated/parity_l1.c
index ff81d1ac5ed..615a744b0d1 100644
--- a/libgfortran/generated/parity_l1.c
+++ b/libgfortran/generated/parity_l1.c
@@ -61,11 +61,11 @@ parity_l1 (gfc_array_l1 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ parity_l1 (gfc_array_l1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ parity_l1 (gfc_array_l1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_LOGICAL_1));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ parity_l1 (gfc_array_l1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/parity_l16.c b/libgfortran/generated/parity_l16.c
index 66970d00f94..dd7d69a830c 100644
--- a/libgfortran/generated/parity_l16.c
+++ b/libgfortran/generated/parity_l16.c
@@ -61,11 +61,11 @@ parity_l16 (gfc_array_l16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ parity_l16 (gfc_array_l16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ parity_l16 (gfc_array_l16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_LOGICAL_16));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ parity_l16 (gfc_array_l16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/parity_l2.c b/libgfortran/generated/parity_l2.c
index 5942257e3d6..7a64c1891e4 100644
--- a/libgfortran/generated/parity_l2.c
+++ b/libgfortran/generated/parity_l2.c
@@ -61,11 +61,11 @@ parity_l2 (gfc_array_l2 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ parity_l2 (gfc_array_l2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ parity_l2 (gfc_array_l2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_LOGICAL_2));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ parity_l2 (gfc_array_l2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/parity_l4.c b/libgfortran/generated/parity_l4.c
index 4f8a9f91756..11e0bbf67be 100644
--- a/libgfortran/generated/parity_l4.c
+++ b/libgfortran/generated/parity_l4.c
@@ -61,11 +61,11 @@ parity_l4 (gfc_array_l4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ parity_l4 (gfc_array_l4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ parity_l4 (gfc_array_l4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_LOGICAL_4));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ parity_l4 (gfc_array_l4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/parity_l8.c b/libgfortran/generated/parity_l8.c
index 73b1d9fba33..ac131918caf 100644
--- a/libgfortran/generated/parity_l8.c
+++ b/libgfortran/generated/parity_l8.c
@@ -61,11 +61,11 @@ parity_l8 (gfc_array_l8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -73,7 +73,7 @@ parity_l8 (gfc_array_l8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -82,23 +82,24 @@ parity_l8 (gfc_array_l8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_LOGICAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_LOGICAL_8));
if (alloc_size == 0)
@@ -125,7 +126,7 @@ parity_l8 (gfc_array_l8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
diff --git a/libgfortran/generated/product_c10.c b/libgfortran/generated/product_c10.c
index 7b325837aed..5607dbe75cf 100644
--- a/libgfortran/generated/product_c10.c
+++ b/libgfortran/generated/product_c10.c
@@ -60,11 +60,11 @@ product_c10 (gfc_array_c10 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_c10 (gfc_array_c10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_c10 (gfc_array_c10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_10));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_c10 (gfc_array_c10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_c10 (gfc_array_c10 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_c10 (gfc_array_c10 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_c10 (gfc_array_c10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_c10 (gfc_array_c10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_10);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_c10 (gfc_array_c10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_c10 (gfc_array_c10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_c10 (gfc_array_c10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_c16.c b/libgfortran/generated/product_c16.c
index 4f31e1b63d0..c0c972cc295 100644
--- a/libgfortran/generated/product_c16.c
+++ b/libgfortran/generated/product_c16.c
@@ -60,11 +60,11 @@ product_c16 (gfc_array_c16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_c16 (gfc_array_c16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_c16 (gfc_array_c16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_c16 (gfc_array_c16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_c16 (gfc_array_c16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_c16 (gfc_array_c16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_c16 (gfc_array_c16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_c16 (gfc_array_c16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_c16 (gfc_array_c16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_c16 (gfc_array_c16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_c16 (gfc_array_c16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_c4.c b/libgfortran/generated/product_c4.c
index 038c502d479..b61635dd463 100644
--- a/libgfortran/generated/product_c4.c
+++ b/libgfortran/generated/product_c4.c
@@ -60,11 +60,11 @@ product_c4 (gfc_array_c4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_c4 (gfc_array_c4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_c4 (gfc_array_c4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_c4 (gfc_array_c4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_c4 (gfc_array_c4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_c4 (gfc_array_c4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_c4 (gfc_array_c4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_c4 (gfc_array_c4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_c4 (gfc_array_c4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_c4 (gfc_array_c4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_c4 (gfc_array_c4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_c8.c b/libgfortran/generated/product_c8.c
index a941a6c624a..09d23b9be0e 100644
--- a/libgfortran/generated/product_c8.c
+++ b/libgfortran/generated/product_c8.c
@@ -60,11 +60,11 @@ product_c8 (gfc_array_c8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_c8 (gfc_array_c8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_c8 (gfc_array_c8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_c8 (gfc_array_c8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_c8 (gfc_array_c8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_c8 (gfc_array_c8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_c8 (gfc_array_c8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_c8 (gfc_array_c8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_c8 (gfc_array_c8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_c8 (gfc_array_c8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_c8 (gfc_array_c8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_i1.c b/libgfortran/generated/product_i1.c
index 39d94fc81ec..23192cbea79 100644
--- a/libgfortran/generated/product_i1.c
+++ b/libgfortran/generated/product_i1.c
@@ -60,11 +60,11 @@ product_i1 (gfc_array_i1 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_i1 (gfc_array_i1 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_i1 (gfc_array_i1 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_i16.c b/libgfortran/generated/product_i16.c
index a89070a44ec..56320078ffc 100644
--- a/libgfortran/generated/product_i16.c
+++ b/libgfortran/generated/product_i16.c
@@ -60,11 +60,11 @@ product_i16 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_i16 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_i16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_i2.c b/libgfortran/generated/product_i2.c
index c8e04ef85dc..a0b8129a320 100644
--- a/libgfortran/generated/product_i2.c
+++ b/libgfortran/generated/product_i2.c
@@ -60,11 +60,11 @@ product_i2 (gfc_array_i2 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_i2 (gfc_array_i2 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_i2 (gfc_array_i2 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_i4.c b/libgfortran/generated/product_i4.c
index 1d3b9cf6a12..84f0d5c503f 100644
--- a/libgfortran/generated/product_i4.c
+++ b/libgfortran/generated/product_i4.c
@@ -60,11 +60,11 @@ product_i4 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_i4 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_i4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_i8.c b/libgfortran/generated/product_i8.c
index 7d61b9ba280..b381eda82ab 100644
--- a/libgfortran/generated/product_i8.c
+++ b/libgfortran/generated/product_i8.c
@@ -60,11 +60,11 @@ product_i8 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_i8 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_i8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_r10.c b/libgfortran/generated/product_r10.c
index 16aa3059e14..65229926f6e 100644
--- a/libgfortran/generated/product_r10.c
+++ b/libgfortran/generated/product_r10.c
@@ -60,11 +60,11 @@ product_r10 (gfc_array_r10 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_r10 (gfc_array_r10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_r10 (gfc_array_r10 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_r10 (gfc_array_r10 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_r10 (gfc_array_r10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_r16.c b/libgfortran/generated/product_r16.c
index 3bb085ff19b..13891a0fccc 100644
--- a/libgfortran/generated/product_r16.c
+++ b/libgfortran/generated/product_r16.c
@@ -60,11 +60,11 @@ product_r16 (gfc_array_r16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_r16 (gfc_array_r16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_r16 (gfc_array_r16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_r16 (gfc_array_r16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_r16 (gfc_array_r16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_r4.c b/libgfortran/generated/product_r4.c
index 18dfdde9672..5d9a573f01c 100644
--- a/libgfortran/generated/product_r4.c
+++ b/libgfortran/generated/product_r4.c
@@ -60,11 +60,11 @@ product_r4 (gfc_array_r4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_r4 (gfc_array_r4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_r4 (gfc_array_r4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_r4 (gfc_array_r4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_r4 (gfc_array_r4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/product_r8.c b/libgfortran/generated/product_r8.c
index 7ac062aa98f..cdc3a5e9fc2 100644
--- a/libgfortran/generated/product_r8.c
+++ b/libgfortran/generated/product_r8.c
@@ -60,11 +60,11 @@ product_r8 (gfc_array_r8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ product_r8 (gfc_array_r8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ product_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ product_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ mproduct_r8 (gfc_array_r8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ mproduct_r8 (gfc_array_r8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ mproduct_r8 (gfc_array_r8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ mproduct_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ mproduct_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ sproduct_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ sproduct_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/reshape_c10.c b/libgfortran/generated/reshape_c10.c
index a7fb560d632..45914ab8b4e 100644
--- a/libgfortran/generated/reshape_c10.c
+++ b/libgfortran/generated/reshape_c10.c
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if defined (HAVE_GFC_COMPLEX_10)
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef CFI_CDESC_TYPE_T(1, index_type) shape_type;
extern void reshape_c10 (gfc_array_c10 * const restrict,
@@ -87,7 +87,7 @@ reshape_c10 (gfc_array_c10 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)];
+ shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)];
if (shape_data[n] <= 0)
{
shape_data[n] = 0;
@@ -99,12 +99,12 @@ reshape_c10 (gfc_array_c10 * const restrict ret,
{
index_type alloc_size;
- rs = 1;
+ rs = sizeof (GFC_COMPLEX_10);
for (n = 0; n < rdim; n++)
{
rex = shape_data[n];
- GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs);
+ GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs);
rs *= rex;
}
@@ -116,7 +116,8 @@ reshape_c10 (gfc_array_c10 * const restrict ret,
alloc_size = rs;
ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_10));
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
}
if (shape_empty)
@@ -130,7 +131,7 @@ reshape_c10 (gfc_array_c10 * const restrict ret,
for (n = 0; n < pdim; n++)
{
pcount[n] = 0;
- pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n);
+ pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n);
pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n);
if (pextent[n] <= 0)
{
@@ -193,7 +194,7 @@ reshape_c10 (gfc_array_c10 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
if (v < 0 || v >= rdim)
runtime_error("Value %ld out of range in ORDER argument"
@@ -212,12 +213,12 @@ reshape_c10 (gfc_array_c10 * const restrict ret,
for (n = 0; n < rdim; n++)
{
if (order)
- dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
else
dim = n;
rcount[n] = 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim);
if (rextent[n] < 0)
rextent[n] = 0;
@@ -239,7 +240,7 @@ reshape_c10 (gfc_array_c10 * const restrict ret,
for (n = 0; n < sdim; n++)
{
scount[n] = 0;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (sextent[n] <= 0)
{
diff --git a/libgfortran/generated/reshape_c16.c b/libgfortran/generated/reshape_c16.c
index a8186f98d53..517c672aab3 100644
--- a/libgfortran/generated/reshape_c16.c
+++ b/libgfortran/generated/reshape_c16.c
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if defined (HAVE_GFC_COMPLEX_16)
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef CFI_CDESC_TYPE_T(1, index_type) shape_type;
extern void reshape_c16 (gfc_array_c16 * const restrict,
@@ -87,7 +87,7 @@ reshape_c16 (gfc_array_c16 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)];
+ shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)];
if (shape_data[n] <= 0)
{
shape_data[n] = 0;
@@ -99,12 +99,12 @@ reshape_c16 (gfc_array_c16 * const restrict ret,
{
index_type alloc_size;
- rs = 1;
+ rs = sizeof (GFC_COMPLEX_16);
for (n = 0; n < rdim; n++)
{
rex = shape_data[n];
- GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs);
+ GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs);
rs *= rex;
}
@@ -116,7 +116,8 @@ reshape_c16 (gfc_array_c16 * const restrict ret,
alloc_size = rs;
ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_16));
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
}
if (shape_empty)
@@ -130,7 +131,7 @@ reshape_c16 (gfc_array_c16 * const restrict ret,
for (n = 0; n < pdim; n++)
{
pcount[n] = 0;
- pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n);
+ pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n);
pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n);
if (pextent[n] <= 0)
{
@@ -193,7 +194,7 @@ reshape_c16 (gfc_array_c16 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
if (v < 0 || v >= rdim)
runtime_error("Value %ld out of range in ORDER argument"
@@ -212,12 +213,12 @@ reshape_c16 (gfc_array_c16 * const restrict ret,
for (n = 0; n < rdim; n++)
{
if (order)
- dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
else
dim = n;
rcount[n] = 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim);
if (rextent[n] < 0)
rextent[n] = 0;
@@ -239,7 +240,7 @@ reshape_c16 (gfc_array_c16 * const restrict ret,
for (n = 0; n < sdim; n++)
{
scount[n] = 0;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (sextent[n] <= 0)
{
diff --git a/libgfortran/generated/reshape_c4.c b/libgfortran/generated/reshape_c4.c
index 1aa1934cef7..81f0e539d10 100644
--- a/libgfortran/generated/reshape_c4.c
+++ b/libgfortran/generated/reshape_c4.c
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if defined (HAVE_GFC_COMPLEX_4)
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef CFI_CDESC_TYPE_T(1, index_type) shape_type;
extern void reshape_c4 (gfc_array_c4 * const restrict,
@@ -87,7 +87,7 @@ reshape_c4 (gfc_array_c4 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)];
+ shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)];
if (shape_data[n] <= 0)
{
shape_data[n] = 0;
@@ -99,12 +99,12 @@ reshape_c4 (gfc_array_c4 * const restrict ret,
{
index_type alloc_size;
- rs = 1;
+ rs = sizeof (GFC_COMPLEX_4);
for (n = 0; n < rdim; n++)
{
rex = shape_data[n];
- GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs);
+ GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs);
rs *= rex;
}
@@ -116,7 +116,8 @@ reshape_c4 (gfc_array_c4 * const restrict ret,
alloc_size = rs;
ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_4));
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
}
if (shape_empty)
@@ -130,7 +131,7 @@ reshape_c4 (gfc_array_c4 * const restrict ret,
for (n = 0; n < pdim; n++)
{
pcount[n] = 0;
- pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n);
+ pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n);
pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n);
if (pextent[n] <= 0)
{
@@ -193,7 +194,7 @@ reshape_c4 (gfc_array_c4 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
if (v < 0 || v >= rdim)
runtime_error("Value %ld out of range in ORDER argument"
@@ -212,12 +213,12 @@ reshape_c4 (gfc_array_c4 * const restrict ret,
for (n = 0; n < rdim; n++)
{
if (order)
- dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
else
dim = n;
rcount[n] = 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim);
if (rextent[n] < 0)
rextent[n] = 0;
@@ -239,7 +240,7 @@ reshape_c4 (gfc_array_c4 * const restrict ret,
for (n = 0; n < sdim; n++)
{
scount[n] = 0;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (sextent[n] <= 0)
{
diff --git a/libgfortran/generated/reshape_c8.c b/libgfortran/generated/reshape_c8.c
index 5b7f796234e..d91dcae432b 100644
--- a/libgfortran/generated/reshape_c8.c
+++ b/libgfortran/generated/reshape_c8.c
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if defined (HAVE_GFC_COMPLEX_8)
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef CFI_CDESC_TYPE_T(1, index_type) shape_type;
extern void reshape_c8 (gfc_array_c8 * const restrict,
@@ -87,7 +87,7 @@ reshape_c8 (gfc_array_c8 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)];
+ shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)];
if (shape_data[n] <= 0)
{
shape_data[n] = 0;
@@ -99,12 +99,12 @@ reshape_c8 (gfc_array_c8 * const restrict ret,
{
index_type alloc_size;
- rs = 1;
+ rs = sizeof (GFC_COMPLEX_8);
for (n = 0; n < rdim; n++)
{
rex = shape_data[n];
- GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs);
+ GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs);
rs *= rex;
}
@@ -116,7 +116,8 @@ reshape_c8 (gfc_array_c8 * const restrict ret,
alloc_size = rs;
ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_8));
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
}
if (shape_empty)
@@ -130,7 +131,7 @@ reshape_c8 (gfc_array_c8 * const restrict ret,
for (n = 0; n < pdim; n++)
{
pcount[n] = 0;
- pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n);
+ pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n);
pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n);
if (pextent[n] <= 0)
{
@@ -193,7 +194,7 @@ reshape_c8 (gfc_array_c8 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
if (v < 0 || v >= rdim)
runtime_error("Value %ld out of range in ORDER argument"
@@ -212,12 +213,12 @@ reshape_c8 (gfc_array_c8 * const restrict ret,
for (n = 0; n < rdim; n++)
{
if (order)
- dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
else
dim = n;
rcount[n] = 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim);
if (rextent[n] < 0)
rextent[n] = 0;
@@ -239,7 +240,7 @@ reshape_c8 (gfc_array_c8 * const restrict ret,
for (n = 0; n < sdim; n++)
{
scount[n] = 0;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (sextent[n] <= 0)
{
diff --git a/libgfortran/generated/reshape_i16.c b/libgfortran/generated/reshape_i16.c
index b766e1a9acf..b43a841b7c9 100644
--- a/libgfortran/generated/reshape_i16.c
+++ b/libgfortran/generated/reshape_i16.c
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if defined (HAVE_GFC_INTEGER_16)
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef CFI_CDESC_TYPE_T(1, index_type) shape_type;
extern void reshape_16 (gfc_array_i16 * const restrict,
@@ -87,7 +87,7 @@ reshape_16 (gfc_array_i16 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)];
+ shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)];
if (shape_data[n] <= 0)
{
shape_data[n] = 0;
@@ -99,12 +99,12 @@ reshape_16 (gfc_array_i16 * const restrict ret,
{
index_type alloc_size;
- rs = 1;
+ rs = sizeof (GFC_INTEGER_16);
for (n = 0; n < rdim; n++)
{
rex = shape_data[n];
- GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs);
+ GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs);
rs *= rex;
}
@@ -116,7 +116,8 @@ reshape_16 (gfc_array_i16 * const restrict ret,
alloc_size = rs;
ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
}
if (shape_empty)
@@ -130,7 +131,7 @@ reshape_16 (gfc_array_i16 * const restrict ret,
for (n = 0; n < pdim; n++)
{
pcount[n] = 0;
- pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n);
+ pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n);
pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n);
if (pextent[n] <= 0)
{
@@ -193,7 +194,7 @@ reshape_16 (gfc_array_i16 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
if (v < 0 || v >= rdim)
runtime_error("Value %ld out of range in ORDER argument"
@@ -212,12 +213,12 @@ reshape_16 (gfc_array_i16 * const restrict ret,
for (n = 0; n < rdim; n++)
{
if (order)
- dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
else
dim = n;
rcount[n] = 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim);
if (rextent[n] < 0)
rextent[n] = 0;
@@ -239,7 +240,7 @@ reshape_16 (gfc_array_i16 * const restrict ret,
for (n = 0; n < sdim; n++)
{
scount[n] = 0;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (sextent[n] <= 0)
{
diff --git a/libgfortran/generated/reshape_i4.c b/libgfortran/generated/reshape_i4.c
index 4831857b827..01f5b34b1e3 100644
--- a/libgfortran/generated/reshape_i4.c
+++ b/libgfortran/generated/reshape_i4.c
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if defined (HAVE_GFC_INTEGER_4)
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef CFI_CDESC_TYPE_T(1, index_type) shape_type;
extern void reshape_4 (gfc_array_i4 * const restrict,
@@ -87,7 +87,7 @@ reshape_4 (gfc_array_i4 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)];
+ shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)];
if (shape_data[n] <= 0)
{
shape_data[n] = 0;
@@ -99,12 +99,12 @@ reshape_4 (gfc_array_i4 * const restrict ret,
{
index_type alloc_size;
- rs = 1;
+ rs = sizeof (GFC_INTEGER_4);
for (n = 0; n < rdim; n++)
{
rex = shape_data[n];
- GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs);
+ GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs);
rs *= rex;
}
@@ -116,7 +116,8 @@ reshape_4 (gfc_array_i4 * const restrict ret,
alloc_size = rs;
ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
}
if (shape_empty)
@@ -130,7 +131,7 @@ reshape_4 (gfc_array_i4 * const restrict ret,
for (n = 0; n < pdim; n++)
{
pcount[n] = 0;
- pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n);
+ pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n);
pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n);
if (pextent[n] <= 0)
{
@@ -193,7 +194,7 @@ reshape_4 (gfc_array_i4 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
if (v < 0 || v >= rdim)
runtime_error("Value %ld out of range in ORDER argument"
@@ -212,12 +213,12 @@ reshape_4 (gfc_array_i4 * const restrict ret,
for (n = 0; n < rdim; n++)
{
if (order)
- dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
else
dim = n;
rcount[n] = 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim);
if (rextent[n] < 0)
rextent[n] = 0;
@@ -239,7 +240,7 @@ reshape_4 (gfc_array_i4 * const restrict ret,
for (n = 0; n < sdim; n++)
{
scount[n] = 0;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (sextent[n] <= 0)
{
diff --git a/libgfortran/generated/reshape_i8.c b/libgfortran/generated/reshape_i8.c
index 1729d488bae..63ecd497926 100644
--- a/libgfortran/generated/reshape_i8.c
+++ b/libgfortran/generated/reshape_i8.c
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if defined (HAVE_GFC_INTEGER_8)
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef CFI_CDESC_TYPE_T(1, index_type) shape_type;
extern void reshape_8 (gfc_array_i8 * const restrict,
@@ -87,7 +87,7 @@ reshape_8 (gfc_array_i8 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)];
+ shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)];
if (shape_data[n] <= 0)
{
shape_data[n] = 0;
@@ -99,12 +99,12 @@ reshape_8 (gfc_array_i8 * const restrict ret,
{
index_type alloc_size;
- rs = 1;
+ rs = sizeof (GFC_INTEGER_8);
for (n = 0; n < rdim; n++)
{
rex = shape_data[n];
- GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs);
+ GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs);
rs *= rex;
}
@@ -116,7 +116,8 @@ reshape_8 (gfc_array_i8 * const restrict ret,
alloc_size = rs;
ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
}
if (shape_empty)
@@ -130,7 +131,7 @@ reshape_8 (gfc_array_i8 * const restrict ret,
for (n = 0; n < pdim; n++)
{
pcount[n] = 0;
- pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n);
+ pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n);
pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n);
if (pextent[n] <= 0)
{
@@ -193,7 +194,7 @@ reshape_8 (gfc_array_i8 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
if (v < 0 || v >= rdim)
runtime_error("Value %ld out of range in ORDER argument"
@@ -212,12 +213,12 @@ reshape_8 (gfc_array_i8 * const restrict ret,
for (n = 0; n < rdim; n++)
{
if (order)
- dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
else
dim = n;
rcount[n] = 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim);
if (rextent[n] < 0)
rextent[n] = 0;
@@ -239,7 +240,7 @@ reshape_8 (gfc_array_i8 * const restrict ret,
for (n = 0; n < sdim; n++)
{
scount[n] = 0;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (sextent[n] <= 0)
{
diff --git a/libgfortran/generated/reshape_r10.c b/libgfortran/generated/reshape_r10.c
index f1dd44a43a6..2f1a552c50c 100644
--- a/libgfortran/generated/reshape_r10.c
+++ b/libgfortran/generated/reshape_r10.c
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if defined (HAVE_GFC_REAL_10)
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef CFI_CDESC_TYPE_T(1, index_type) shape_type;
extern void reshape_r10 (gfc_array_r10 * const restrict,
@@ -87,7 +87,7 @@ reshape_r10 (gfc_array_r10 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)];
+ shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)];
if (shape_data[n] <= 0)
{
shape_data[n] = 0;
@@ -99,12 +99,12 @@ reshape_r10 (gfc_array_r10 * const restrict ret,
{
index_type alloc_size;
- rs = 1;
+ rs = sizeof (GFC_REAL_10);
for (n = 0; n < rdim; n++)
{
rex = shape_data[n];
- GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs);
+ GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs);
rs *= rex;
}
@@ -116,7 +116,8 @@ reshape_r10 (gfc_array_r10 * const restrict ret,
alloc_size = rs;
ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10));
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
}
if (shape_empty)
@@ -130,7 +131,7 @@ reshape_r10 (gfc_array_r10 * const restrict ret,
for (n = 0; n < pdim; n++)
{
pcount[n] = 0;
- pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n);
+ pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n);
pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n);
if (pextent[n] <= 0)
{
@@ -193,7 +194,7 @@ reshape_r10 (gfc_array_r10 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
if (v < 0 || v >= rdim)
runtime_error("Value %ld out of range in ORDER argument"
@@ -212,12 +213,12 @@ reshape_r10 (gfc_array_r10 * const restrict ret,
for (n = 0; n < rdim; n++)
{
if (order)
- dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
else
dim = n;
rcount[n] = 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim);
if (rextent[n] < 0)
rextent[n] = 0;
@@ -239,7 +240,7 @@ reshape_r10 (gfc_array_r10 * const restrict ret,
for (n = 0; n < sdim; n++)
{
scount[n] = 0;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (sextent[n] <= 0)
{
diff --git a/libgfortran/generated/reshape_r16.c b/libgfortran/generated/reshape_r16.c
index 360b18ffdf4..31d8a0756c7 100644
--- a/libgfortran/generated/reshape_r16.c
+++ b/libgfortran/generated/reshape_r16.c
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if defined (HAVE_GFC_REAL_16)
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef CFI_CDESC_TYPE_T(1, index_type) shape_type;
extern void reshape_r16 (gfc_array_r16 * const restrict,
@@ -87,7 +87,7 @@ reshape_r16 (gfc_array_r16 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)];
+ shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)];
if (shape_data[n] <= 0)
{
shape_data[n] = 0;
@@ -99,12 +99,12 @@ reshape_r16 (gfc_array_r16 * const restrict ret,
{
index_type alloc_size;
- rs = 1;
+ rs = sizeof (GFC_REAL_16);
for (n = 0; n < rdim; n++)
{
rex = shape_data[n];
- GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs);
+ GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs);
rs *= rex;
}
@@ -116,7 +116,8 @@ reshape_r16 (gfc_array_r16 * const restrict ret,
alloc_size = rs;
ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16));
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
}
if (shape_empty)
@@ -130,7 +131,7 @@ reshape_r16 (gfc_array_r16 * const restrict ret,
for (n = 0; n < pdim; n++)
{
pcount[n] = 0;
- pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n);
+ pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n);
pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n);
if (pextent[n] <= 0)
{
@@ -193,7 +194,7 @@ reshape_r16 (gfc_array_r16 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
if (v < 0 || v >= rdim)
runtime_error("Value %ld out of range in ORDER argument"
@@ -212,12 +213,12 @@ reshape_r16 (gfc_array_r16 * const restrict ret,
for (n = 0; n < rdim; n++)
{
if (order)
- dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
else
dim = n;
rcount[n] = 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim);
if (rextent[n] < 0)
rextent[n] = 0;
@@ -239,7 +240,7 @@ reshape_r16 (gfc_array_r16 * const restrict ret,
for (n = 0; n < sdim; n++)
{
scount[n] = 0;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (sextent[n] <= 0)
{
diff --git a/libgfortran/generated/reshape_r4.c b/libgfortran/generated/reshape_r4.c
index e06cb541799..8db329ba870 100644
--- a/libgfortran/generated/reshape_r4.c
+++ b/libgfortran/generated/reshape_r4.c
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if defined (HAVE_GFC_REAL_4)
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef CFI_CDESC_TYPE_T(1, index_type) shape_type;
extern void reshape_r4 (gfc_array_r4 * const restrict,
@@ -87,7 +87,7 @@ reshape_r4 (gfc_array_r4 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)];
+ shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)];
if (shape_data[n] <= 0)
{
shape_data[n] = 0;
@@ -99,12 +99,12 @@ reshape_r4 (gfc_array_r4 * const restrict ret,
{
index_type alloc_size;
- rs = 1;
+ rs = sizeof (GFC_REAL_4);
for (n = 0; n < rdim; n++)
{
rex = shape_data[n];
- GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs);
+ GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs);
rs *= rex;
}
@@ -116,7 +116,8 @@ reshape_r4 (gfc_array_r4 * const restrict ret,
alloc_size = rs;
ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4));
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
}
if (shape_empty)
@@ -130,7 +131,7 @@ reshape_r4 (gfc_array_r4 * const restrict ret,
for (n = 0; n < pdim; n++)
{
pcount[n] = 0;
- pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n);
+ pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n);
pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n);
if (pextent[n] <= 0)
{
@@ -193,7 +194,7 @@ reshape_r4 (gfc_array_r4 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
if (v < 0 || v >= rdim)
runtime_error("Value %ld out of range in ORDER argument"
@@ -212,12 +213,12 @@ reshape_r4 (gfc_array_r4 * const restrict ret,
for (n = 0; n < rdim; n++)
{
if (order)
- dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
else
dim = n;
rcount[n] = 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim);
if (rextent[n] < 0)
rextent[n] = 0;
@@ -239,7 +240,7 @@ reshape_r4 (gfc_array_r4 * const restrict ret,
for (n = 0; n < sdim; n++)
{
scount[n] = 0;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (sextent[n] <= 0)
{
diff --git a/libgfortran/generated/reshape_r8.c b/libgfortran/generated/reshape_r8.c
index 08888a8ad8e..33b476830d7 100644
--- a/libgfortran/generated/reshape_r8.c
+++ b/libgfortran/generated/reshape_r8.c
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if defined (HAVE_GFC_REAL_8)
-typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type;
+typedef CFI_CDESC_TYPE_T(1, index_type) shape_type;
extern void reshape_r8 (gfc_array_r8 * const restrict,
@@ -87,7 +87,7 @@ reshape_r8 (gfc_array_r8 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)];
+ shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)];
if (shape_data[n] <= 0)
{
shape_data[n] = 0;
@@ -99,12 +99,12 @@ reshape_r8 (gfc_array_r8 * const restrict ret,
{
index_type alloc_size;
- rs = 1;
+ rs = sizeof (GFC_REAL_8);
for (n = 0; n < rdim; n++)
{
rex = shape_data[n];
- GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs);
+ GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs);
rs *= rex;
}
@@ -116,7 +116,8 @@ reshape_r8 (gfc_array_r8 * const restrict ret,
alloc_size = rs;
ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8));
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
}
if (shape_empty)
@@ -130,7 +131,7 @@ reshape_r8 (gfc_array_r8 * const restrict ret,
for (n = 0; n < pdim; n++)
{
pcount[n] = 0;
- pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n);
+ pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n);
pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n);
if (pextent[n] <= 0)
{
@@ -193,7 +194,7 @@ reshape_r8 (gfc_array_r8 * const restrict ret,
for (n = 0; n < rdim; n++)
{
- v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
if (v < 0 || v >= rdim)
runtime_error("Value %ld out of range in ORDER argument"
@@ -212,12 +213,12 @@ reshape_r8 (gfc_array_r8 * const restrict ret,
for (n = 0; n < rdim; n++)
{
if (order)
- dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1;
+ dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1;
else
dim = n;
rcount[n] = 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim);
rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim);
if (rextent[n] < 0)
rextent[n] = 0;
@@ -239,7 +240,7 @@ reshape_r8 (gfc_array_r8 * const restrict ret,
for (n = 0; n < sdim; n++)
{
scount[n] = 0;
- sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n);
sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n);
if (sextent[n] <= 0)
{
diff --git a/libgfortran/generated/shape_i16.c b/libgfortran/generated/shape_i16.c
index c5047562d7f..ccf3484fdb6 100644
--- a/libgfortran/generated/shape_i16.c
+++ b/libgfortran/generated/shape_i16.c
@@ -47,12 +47,12 @@ shape_16 (gfc_array_i16 * const restrict ret,
if (ret->base_addr == NULL)
{
- GFC_DIMENSION_SET(ret->dim[0], 0, rank - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, rank, sizeof (GFC_INTEGER_16));
ret->offset = 0;
ret->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16));
}
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (GFC_DESCRIPTOR_EXTENT(ret,0) < 1)
return;
diff --git a/libgfortran/generated/shape_i4.c b/libgfortran/generated/shape_i4.c
index 0a56fe9fe92..1af330c7a1a 100644
--- a/libgfortran/generated/shape_i4.c
+++ b/libgfortran/generated/shape_i4.c
@@ -47,12 +47,12 @@ shape_4 (gfc_array_i4 * const restrict ret,
if (ret->base_addr == NULL)
{
- GFC_DIMENSION_SET(ret->dim[0], 0, rank - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, rank, sizeof (GFC_INTEGER_4));
ret->offset = 0;
ret->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4));
}
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (GFC_DESCRIPTOR_EXTENT(ret,0) < 1)
return;
diff --git a/libgfortran/generated/shape_i8.c b/libgfortran/generated/shape_i8.c
index 6e9dc22583d..bec047d2e73 100644
--- a/libgfortran/generated/shape_i8.c
+++ b/libgfortran/generated/shape_i8.c
@@ -47,12 +47,12 @@ shape_8 (gfc_array_i8 * const restrict ret,
if (ret->base_addr == NULL)
{
- GFC_DIMENSION_SET(ret->dim[0], 0, rank - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, rank, sizeof (GFC_INTEGER_8));
ret->offset = 0;
ret->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8));
}
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
if (GFC_DESCRIPTOR_EXTENT(ret,0) < 1)
return;
diff --git a/libgfortran/generated/spread_c10.c b/libgfortran/generated/spread_c10.c
index 592443e71aa..ce9940ac14d 100644
--- a/libgfortran/generated/spread_c10.c
+++ b/libgfortran/generated/spread_c10.c
@@ -70,11 +70,12 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_COMPLEX_10));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_c10 (gfc_array_c10 *ret, const GFC_COMPLEX_10 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_10));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_COMPLEX_10));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_c16.c b/libgfortran/generated/spread_c16.c
index 0fce566d751..4ed122ff25f 100644
--- a/libgfortran/generated/spread_c16.c
+++ b/libgfortran/generated/spread_c16.c
@@ -70,11 +70,12 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_COMPLEX_16));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_c16 (gfc_array_c16 *ret, const GFC_COMPLEX_16 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_16));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_COMPLEX_16));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_c4.c b/libgfortran/generated/spread_c4.c
index 5d1e86b3756..67a672a17a8 100644
--- a/libgfortran/generated/spread_c4.c
+++ b/libgfortran/generated/spread_c4.c
@@ -70,11 +70,12 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_COMPLEX_4));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_c4 (gfc_array_c4 *ret, const GFC_COMPLEX_4 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_4));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_COMPLEX_4));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_c8.c b/libgfortran/generated/spread_c8.c
index f8b0da8bc76..b01627e53be 100644
--- a/libgfortran/generated/spread_c8.c
+++ b/libgfortran/generated/spread_c8.c
@@ -70,11 +70,12 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_COMPLEX_8));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_c8 (gfc_array_c8 *ret, const GFC_COMPLEX_8 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_8));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_COMPLEX_8));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_i1.c b/libgfortran/generated/spread_i1.c
index 44aef16d3df..875b8864eea 100644
--- a/libgfortran/generated/spread_i1.c
+++ b/libgfortran/generated/spread_i1.c
@@ -70,11 +70,12 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_INTEGER_1));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_i1 (gfc_array_i1 *ret, const GFC_INTEGER_1 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_1));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_INTEGER_1));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_i16.c b/libgfortran/generated/spread_i16.c
index f4ad0180cce..3690ceb2a4f 100644
--- a/libgfortran/generated/spread_i16.c
+++ b/libgfortran/generated/spread_i16.c
@@ -70,11 +70,12 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_INTEGER_16));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_i16 (gfc_array_i16 *ret, const GFC_INTEGER_16 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_16));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_INTEGER_16));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_i2.c b/libgfortran/generated/spread_i2.c
index 02e7628394a..3f2f9ecbb30 100644
--- a/libgfortran/generated/spread_i2.c
+++ b/libgfortran/generated/spread_i2.c
@@ -70,11 +70,12 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_INTEGER_2));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_i2 (gfc_array_i2 *ret, const GFC_INTEGER_2 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_2));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_INTEGER_2));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_i4.c b/libgfortran/generated/spread_i4.c
index 0c8d9273657..92655d50b16 100644
--- a/libgfortran/generated/spread_i4.c
+++ b/libgfortran/generated/spread_i4.c
@@ -70,11 +70,12 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_INTEGER_4));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_i4 (gfc_array_i4 *ret, const GFC_INTEGER_4 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_4));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_INTEGER_4));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_i8.c b/libgfortran/generated/spread_i8.c
index 402c746cf3e..30f10d967f4 100644
--- a/libgfortran/generated/spread_i8.c
+++ b/libgfortran/generated/spread_i8.c
@@ -70,11 +70,12 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_INTEGER_8));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_i8 (gfc_array_i8 *ret, const GFC_INTEGER_8 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_8));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_INTEGER_8));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_r10.c b/libgfortran/generated/spread_r10.c
index 248186eb3f8..8f59d131a5e 100644
--- a/libgfortran/generated/spread_r10.c
+++ b/libgfortran/generated/spread_r10.c
@@ -70,11 +70,12 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_REAL_10));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_r10 (gfc_array_r10 *ret, const GFC_REAL_10 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_10));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_REAL_10));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_r16.c b/libgfortran/generated/spread_r16.c
index 50aef1087b9..4a1a35e0f24 100644
--- a/libgfortran/generated/spread_r16.c
+++ b/libgfortran/generated/spread_r16.c
@@ -70,11 +70,12 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_REAL_16));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_r16 (gfc_array_r16 *ret, const GFC_REAL_16 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_16));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_REAL_16));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_r4.c b/libgfortran/generated/spread_r4.c
index fab55c7a1db..a3f9b48a693 100644
--- a/libgfortran/generated/spread_r4.c
+++ b/libgfortran/generated/spread_r4.c
@@ -70,11 +70,12 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_REAL_4));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_r4 (gfc_array_r4 *ret, const GFC_REAL_4 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_4));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_REAL_4));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/spread_r8.c b/libgfortran/generated/spread_r8.c
index 6076638d715..754bc40d2fc 100644
--- a/libgfortran/generated/spread_r8.c
+++ b/libgfortran/generated/spread_r8.c
@@ -70,11 +70,12 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source,
if (ret->base_addr == NULL)
{
- size_t ub, stride;
+ size_t ext, stride;
/* The front end has signalled that we need to populate the
return array descriptor. */
- ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank;
+ ret->elem_len = source->elem_len;
+ ret->type = source->type;
dim = 0;
rs = 1;
for (n = 0; n < rrank; n++)
@@ -82,7 +83,7 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source,
stride = rs;
if (n == along - 1)
{
- ub = ncopies - 1;
+ ext = ncopies;
rdelta = rs;
rs *= ncopies;
}
@@ -90,14 +91,14 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source,
{
count[dim] = 0;
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
rstride[dim] = rs;
- ub = extent[dim] - 1;
+ ext = extent[dim];
rs *= extent[dim];
dim++;
}
- GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride);
+ GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_REAL_8));
}
ret->offset = 0;
@@ -125,7 +126,7 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source,
ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n);
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
@@ -146,8 +147,8 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source,
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -158,7 +159,7 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source,
{
if (n == along - 1)
{
- rdelta = GFC_DESCRIPTOR_STRIDE(ret,n);
+ rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
}
else
{
@@ -166,8 +167,8 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source,
extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim);
if (extent[dim] <= 0)
zero_sized = 1;
- sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim);
- rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n);
+ sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim);
+ rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
dim++;
}
}
@@ -246,17 +247,17 @@ spread_scalar_r8 (gfc_array_r8 *ret, const GFC_REAL_8 *source,
{
ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_8));
ret->offset = 0;
- GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_REAL_8));
}
else
{
if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
- / GFC_DESCRIPTOR_STRIDE(ret,0))
+ / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0))
runtime_error ("dim too large in spread()");
}
dest = ret->base_addr;
- stride = GFC_DESCRIPTOR_STRIDE(ret,0);
+ stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
for (n = 0; n < ncopies; n++)
{
diff --git a/libgfortran/generated/sum_c10.c b/libgfortran/generated/sum_c10.c
index 176623dfff6..cebcc78b451 100644
--- a/libgfortran/generated/sum_c10.c
+++ b/libgfortran/generated/sum_c10.c
@@ -60,11 +60,11 @@ sum_c10 (gfc_array_c10 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_c10 (gfc_array_c10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_c10 (gfc_array_c10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_10));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_c10 (gfc_array_c10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_c10 (gfc_array_c10 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_c10 (gfc_array_c10 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_c10 (gfc_array_c10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_c10 (gfc_array_c10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_10);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_c10 (gfc_array_c10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_c10 (gfc_array_c10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_c10 (gfc_array_c10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_c16.c b/libgfortran/generated/sum_c16.c
index 055a659304d..b913d926c33 100644
--- a/libgfortran/generated/sum_c16.c
+++ b/libgfortran/generated/sum_c16.c
@@ -60,11 +60,11 @@ sum_c16 (gfc_array_c16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_c16 (gfc_array_c16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_c16 (gfc_array_c16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_c16 (gfc_array_c16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_c16 (gfc_array_c16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_c16 (gfc_array_c16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_c16 (gfc_array_c16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_c16 (gfc_array_c16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_c16 (gfc_array_c16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_c16 (gfc_array_c16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_c16 (gfc_array_c16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_c4.c b/libgfortran/generated/sum_c4.c
index 6fab436b2c4..2e2eac0dd2b 100644
--- a/libgfortran/generated/sum_c4.c
+++ b/libgfortran/generated/sum_c4.c
@@ -60,11 +60,11 @@ sum_c4 (gfc_array_c4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_c4 (gfc_array_c4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_c4 (gfc_array_c4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_c4 (gfc_array_c4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_c4 (gfc_array_c4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_c4 (gfc_array_c4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_c4 (gfc_array_c4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_c4 (gfc_array_c4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_c4 (gfc_array_c4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_c4 (gfc_array_c4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_c4 (gfc_array_c4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_c8.c b/libgfortran/generated/sum_c8.c
index c3d35804d64..150604d7777 100644
--- a/libgfortran/generated/sum_c8.c
+++ b/libgfortran/generated/sum_c8.c
@@ -60,11 +60,11 @@ sum_c8 (gfc_array_c8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_c8 (gfc_array_c8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_c8 (gfc_array_c8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_c8 (gfc_array_c8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_c8 (gfc_array_c8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_c8 (gfc_array_c8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_c8 (gfc_array_c8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_c8 (gfc_array_c8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_c8 (gfc_array_c8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_c8 (gfc_array_c8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_COMPLEX_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_c8 (gfc_array_c8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_i1.c b/libgfortran/generated/sum_i1.c
index 88ee3338b82..050763281fb 100644
--- a/libgfortran/generated/sum_i1.c
+++ b/libgfortran/generated/sum_i1.c
@@ -60,11 +60,11 @@ sum_i1 (gfc_array_i1 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_i1 (gfc_array_i1 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_i1 (gfc_array_i1 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_i1 (gfc_array_i1 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_i1 (gfc_array_i1 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_1);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_i1 (gfc_array_i1 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_i16.c b/libgfortran/generated/sum_i16.c
index dc35e0709e7..ea5730edc5a 100644
--- a/libgfortran/generated/sum_i16.c
+++ b/libgfortran/generated/sum_i16.c
@@ -60,11 +60,11 @@ sum_i16 (gfc_array_i16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_i16 (gfc_array_i16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_i16 (gfc_array_i16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_i16 (gfc_array_i16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_i16 (gfc_array_i16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_i16 (gfc_array_i16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_i2.c b/libgfortran/generated/sum_i2.c
index 05c08820675..39f82f003d0 100644
--- a/libgfortran/generated/sum_i2.c
+++ b/libgfortran/generated/sum_i2.c
@@ -60,11 +60,11 @@ sum_i2 (gfc_array_i2 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_i2 (gfc_array_i2 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_i2 (gfc_array_i2 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_i2 (gfc_array_i2 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_i2 (gfc_array_i2 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_2);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_i2 (gfc_array_i2 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_i4.c b/libgfortran/generated/sum_i4.c
index 3653883c4a6..dc195f8da19 100644
--- a/libgfortran/generated/sum_i4.c
+++ b/libgfortran/generated/sum_i4.c
@@ -60,11 +60,11 @@ sum_i4 (gfc_array_i4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_i4 (gfc_array_i4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_i4 (gfc_array_i4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_i4 (gfc_array_i4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_i4 (gfc_array_i4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_i4 (gfc_array_i4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_i8.c b/libgfortran/generated/sum_i8.c
index d2878df6f83..76e44858dec 100644
--- a/libgfortran/generated/sum_i8.c
+++ b/libgfortran/generated/sum_i8.c
@@ -60,11 +60,11 @@ sum_i8 (gfc_array_i8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_i8 (gfc_array_i8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_i8 (gfc_array_i8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_i8 (gfc_array_i8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_i8 (gfc_array_i8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_INTEGER_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_i8 (gfc_array_i8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_r10.c b/libgfortran/generated/sum_r10.c
index cb5169c8a75..7d7d7d088a8 100644
--- a/libgfortran/generated/sum_r10.c
+++ b/libgfortran/generated/sum_r10.c
@@ -60,11 +60,11 @@ sum_r10 (gfc_array_r10 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_r10 (gfc_array_r10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_r10 (gfc_array_r10 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_r10 (gfc_array_r10 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_r10 (gfc_array_r10 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_r10 (gfc_array_r10 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_10);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_r10 (gfc_array_r10 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_r16.c b/libgfortran/generated/sum_r16.c
index 6c67f295f41..1e591481d4e 100644
--- a/libgfortran/generated/sum_r16.c
+++ b/libgfortran/generated/sum_r16.c
@@ -60,11 +60,11 @@ sum_r16 (gfc_array_r16 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_r16 (gfc_array_r16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_r16 (gfc_array_r16 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_r16 (gfc_array_r16 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_r16 (gfc_array_r16 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_r16 (gfc_array_r16 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_16);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_r16 (gfc_array_r16 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_r4.c b/libgfortran/generated/sum_r4.c
index a3a4b59cee6..f601117a739 100644
--- a/libgfortran/generated/sum_r4.c
+++ b/libgfortran/generated/sum_r4.c
@@ -60,11 +60,11 @@ sum_r4 (gfc_array_r4 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_r4 (gfc_array_r4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_r4 (gfc_array_r4 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_r4 (gfc_array_r4 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_r4 (gfc_array_r4 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_r4 (gfc_array_r4 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_4);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_r4 (gfc_array_r4 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/sum_r8.c b/libgfortran/generated/sum_r8.c
index 0cbf649db2a..98b43d1719f 100644
--- a/libgfortran/generated/sum_r8.c
+++ b/libgfortran/generated/sum_r8.c
@@ -60,11 +60,11 @@ sum_r8 (gfc_array_r8 * const restrict retarray,
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len < 0)
len = 0;
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -72,7 +72,7 @@ sum_r8 (gfc_array_r8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -81,23 +81,24 @@ sum_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8));
if (alloc_size == 0)
@@ -124,7 +125,7 @@ sum_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -222,7 +223,7 @@ msum_r8 (gfc_array_r8 * const restrict retarray,
mbase = mask->base_addr;
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -233,13 +234,13 @@ msum_r8 (gfc_array_r8 * const restrict retarray,
else
runtime_error ("Funny sized logical array");
- delta = GFC_DESCRIPTOR_STRIDE(array,dim);
- mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim);
+ delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim);
+ mdelta = GFC_DESCRIPTOR_SM(mask,dim);
for (n = 0; n < dim; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
if (extent[n] < 0)
@@ -248,8 +249,8 @@ msum_r8 (gfc_array_r8 * const restrict retarray,
}
for (n = dim; n < rank; n++)
{
- sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1);
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1);
extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1);
if (extent[n] < 0)
@@ -258,23 +259,24 @@ msum_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm ;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
+ sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1];
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
if (alloc_size == 0)
{
@@ -303,7 +305,7 @@ msum_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
if (extent[n] <= 0)
return;
}
@@ -412,23 +414,23 @@ ssum_r8 (gfc_array_r8 * const restrict retarray,
if (retarray->base_addr == NULL)
{
- size_t alloc_size, str;
+ size_t alloc_size, sm;
for (n = 0; n < rank; n++)
{
if (n == 0)
- str = 1;
+ sm = sizeof (GFC_REAL_8);
else
- str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1];
-
- GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str);
+ sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1];
+ GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm);
}
+ retarray->elem_len = array->elem_len;
+ retarray->type = array->type;
retarray->offset = 0;
- retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
- alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];
+ alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1];
if (alloc_size == 0)
{
@@ -466,7 +468,7 @@ ssum_r8 (gfc_array_r8 * const restrict retarray,
for (n = 0; n < rank; n++)
{
count[n] = 0;
- dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n);
+ dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n);
}
dest = retarray->base_addr;
diff --git a/libgfortran/generated/transpose_c10.c b/libgfortran/generated/transpose_c10.c
index bd201220923..e746cef0e96 100644
--- a/libgfortran/generated/transpose_c10.c
+++ b/libgfortran/generated/transpose_c10.c
@@ -52,13 +52,13 @@ transpose_c10 (gfc_array_c10 * const restrict ret,
if (ret->base_addr == NULL)
{
assert (GFC_DESCRIPTOR_RANK (ret) == 2);
- assert (ret->dtype == source->dtype);
+ assert (ret->type == source->type);
- GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1,
- 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1),
+ sizeof (GFC_COMPLEX_10));
- GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1,
- GFC_DESCRIPTOR_EXTENT(source, 1));
+ GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0),
+ GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_COMPLEX_10));
ret->base_addr = xmallocarray (size0 ((array_t *) ret),
sizeof (GFC_COMPLEX_10));
@@ -87,13 +87,13 @@ transpose_c10 (gfc_array_c10 * const restrict ret,
}
- sxstride = GFC_DESCRIPTOR_STRIDE(source,0);
- systride = GFC_DESCRIPTOR_STRIDE(source,1);
+ sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0);
+ systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1);
xcount = GFC_DESCRIPTOR_EXTENT(source,0);
ycount = GFC_DESCRIPTOR_EXTENT(source,1);
- rxstride = GFC_DESCRIPTOR_STRIDE(ret,0);
- rystride = GFC_DESCRIPTOR_STRIDE(ret,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1);
rptr = ret->base_addr;
sptr = source->base_addr;
diff --git a/libgfortran/generated/transpose_c16.c b/libgfortran/generated/transpose_c16.c
index 044509f67f0..bd11080ce32 100644
--- a/libgfortran/generated/transpose_c16.c
+++ b/libgfortran/generated/transpose_c16.c
@@ -52,13 +52,13 @@ transpose_c16 (gfc_array_c16 * const restrict ret,
if (ret->base_addr == NULL)
{
assert (GFC_DESCRIPTOR_RANK (ret) == 2);
- assert (ret->dtype == source->dtype);
+ assert (ret->type == source->type);
- GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1,
- 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1),
+ sizeof (GFC_COMPLEX_16));
- GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1,
- GFC_DESCRIPTOR_EXTENT(source, 1));
+ GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0),
+ GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_COMPLEX_16));
ret->base_addr = xmallocarray (size0 ((array_t *) ret),
sizeof (GFC_COMPLEX_16));
@@ -87,13 +87,13 @@ transpose_c16 (gfc_array_c16 * const restrict ret,
}
- sxstride = GFC_DESCRIPTOR_STRIDE(source,0);
- systride = GFC_DESCRIPTOR_STRIDE(source,1);
+ sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0);
+ systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1);
xcount = GFC_DESCRIPTOR_EXTENT(source,0);
ycount = GFC_DESCRIPTOR_EXTENT(source,1);
- rxstride = GFC_DESCRIPTOR_STRIDE(ret,0);
- rystride = GFC_DESCRIPTOR_STRIDE(ret,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1);
rptr = ret->base_addr;
sptr = source->base_addr;
diff --git a/libgfortran/generated/transpose_c4.c b/libgfortran/generated/transpose_c4.c
index c6dd90580e6..edd62b3a63f 100644
--- a/libgfortran/generated/transpose_c4.c
+++ b/libgfortran/generated/transpose_c4.c
@@ -52,13 +52,13 @@ transpose_c4 (gfc_array_c4 * const restrict ret,
if (ret->base_addr == NULL)
{
assert (GFC_DESCRIPTOR_RANK (ret) == 2);
- assert (ret->dtype == source->dtype);
+ assert (ret->type == source->type);
- GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1,
- 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1),
+ sizeof (GFC_COMPLEX_4));
- GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1,
- GFC_DESCRIPTOR_EXTENT(source, 1));
+ GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0),
+ GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_COMPLEX_4));
ret->base_addr = xmallocarray (size0 ((array_t *) ret),
sizeof (GFC_COMPLEX_4));
@@ -87,13 +87,13 @@ transpose_c4 (gfc_array_c4 * const restrict ret,
}
- sxstride = GFC_DESCRIPTOR_STRIDE(source,0);
- systride = GFC_DESCRIPTOR_STRIDE(source,1);
+ sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0);
+ systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1);
xcount = GFC_DESCRIPTOR_EXTENT(source,0);
ycount = GFC_DESCRIPTOR_EXTENT(source,1);
- rxstride = GFC_DESCRIPTOR_STRIDE(ret,0);
- rystride = GFC_DESCRIPTOR_STRIDE(ret,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1);
rptr = ret->base_addr;
sptr = source->base_addr;
diff --git a/libgfortran/generated/transpose_c8.c b/libgfortran/generated/transpose_c8.c
index cd5926bf843..014a9ef3298 100644
--- a/libgfortran/generated/transpose_c8.c
+++ b/libgfortran/generated/transpose_c8.c
@@ -52,13 +52,13 @@ transpose_c8 (gfc_array_c8 * const restrict ret,
if (ret->base_addr == NULL)
{
assert (GFC_DESCRIPTOR_RANK (ret) == 2);
- assert (ret->dtype == source->dtype);
+ assert (ret->type == source->type);
- GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1,
- 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1),
+ sizeof (GFC_COMPLEX_8));
- GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1,
- GFC_DESCRIPTOR_EXTENT(source, 1));
+ GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0),
+ GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_COMPLEX_8));
ret->base_addr = xmallocarray (size0 ((array_t *) ret),
sizeof (GFC_COMPLEX_8));
@@ -87,13 +87,13 @@ transpose_c8 (gfc_array_c8 * const restrict ret,
}
- sxstride = GFC_DESCRIPTOR_STRIDE(source,0);
- systride = GFC_DESCRIPTOR_STRIDE(source,1);
+ sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0);
+ systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1);
xcount = GFC_DESCRIPTOR_EXTENT(source,0);
ycount = GFC_DESCRIPTOR_EXTENT(source,1);
- rxstride = GFC_DESCRIPTOR_STRIDE(ret,0);
- rystride = GFC_DESCRIPTOR_STRIDE(ret,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1);
rptr = ret->base_addr;
sptr = source->base_addr;
diff --git a/libgfortran/generated/transpose_i16.c b/libgfortran/generated/transpose_i16.c
index 44aff01ff5f..76941458a39 100644
--- a/libgfortran/generated/transpose_i16.c
+++ b/libgfortran/generated/transpose_i16.c
@@ -52,13 +52,13 @@ transpose_i16 (gfc_array_i16 * const restrict ret,
if (ret->base_addr == NULL)
{
assert (GFC_DESCRIPTOR_RANK (ret) == 2);
- assert (ret->dtype == source->dtype);
+ assert (ret->type == source->type);
- GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1,
- 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1),
+ sizeof (GFC_INTEGER_16));
- GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1,
- GFC_DESCRIPTOR_EXTENT(source, 1));
+ GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0),
+ GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_INTEGER_16));
ret->base_addr = xmallocarray (size0 ((array_t *) ret),
sizeof (GFC_INTEGER_16));
@@ -87,13 +87,13 @@ transpose_i16 (gfc_array_i16 * const restrict ret,
}
- sxstride = GFC_DESCRIPTOR_STRIDE(source,0);
- systride = GFC_DESCRIPTOR_STRIDE(source,1);
+ sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0);
+ systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1);
xcount = GFC_DESCRIPTOR_EXTENT(source,0);
ycount = GFC_DESCRIPTOR_EXTENT(source,1);
- rxstride = GFC_DESCRIPTOR_STRIDE(ret,0);
- rystride = GFC_DESCRIPTOR_STRIDE(ret,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1);
rptr = ret->base_addr;
sptr = source->base_addr;
diff --git a/libgfortran/generated/transpose_i4.c b/libgfortran/generated/transpose_i4.c
index e6844fccbd9..0eb2ea414d2 100644
--- a/libgfortran/generated/transpose_i4.c
+++ b/libgfortran/generated/transpose_i4.c
@@ -52,13 +52,13 @@ transpose_i4 (gfc_array_i4 * const restrict ret,
if (ret->base_addr == NULL)
{
assert (GFC_DESCRIPTOR_RANK (ret) == 2);
- assert (ret->dtype == source->dtype);
+ assert (ret->type == source->type);
- GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1,
- 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1),
+ sizeof (GFC_INTEGER_4));
- GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1,
- GFC_DESCRIPTOR_EXTENT(source, 1));
+ GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0),
+ GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_INTEGER_4));
ret->base_addr = xmallocarray (size0 ((array_t *) ret),
sizeof (GFC_INTEGER_4));
@@ -87,13 +87,13 @@ transpose_i4 (gfc_array_i4 * const restrict ret,
}
- sxstride = GFC_DESCRIPTOR_STRIDE(source,0);
- systride = GFC_DESCRIPTOR_STRIDE(source,1);
+ sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0);
+ systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1);
xcount = GFC_DESCRIPTOR_EXTENT(source,0);
ycount = GFC_DESCRIPTOR_EXTENT(source,1);
- rxstride = GFC_DESCRIPTOR_STRIDE(ret,0);
- rystride = GFC_DESCRIPTOR_STRIDE(ret,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1);
rptr = ret->base_addr;
sptr = source->base_addr;
diff --git a/libgfortran/generated/transpose_i8.c b/libgfortran/generated/transpose_i8.c
index df4a28af2b5..7a77e329d9b 100644
--- a/libgfortran/generated/transpose_i8.c
+++ b/libgfortran/generated/transpose_i8.c
@@ -52,13 +52,13 @@ transpose_i8 (gfc_array_i8 * const restrict ret,
if (ret->base_addr == NULL)
{
assert (GFC_DESCRIPTOR_RANK (ret) == 2);
- assert (ret->dtype == source->dtype);
+ assert (ret->type == source->type);
- GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1,
- 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1),
+ sizeof (GFC_INTEGER_8));
- GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1,
- GFC_DESCRIPTOR_EXTENT(source, 1));
+ GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0),
+ GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_INTEGER_8));
ret->base_addr = xmallocarray (size0 ((array_t *) ret),
sizeof (GFC_INTEGER_8));
@@ -87,13 +87,13 @@ transpose_i8 (gfc_array_i8 * const restrict ret,
}
- sxstride = GFC_DESCRIPTOR_STRIDE(source,0);
- systride = GFC_DESCRIPTOR_STRIDE(source,1);
+ sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0);
+ systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1);
xcount = GFC_DESCRIPTOR_EXTENT(source,0);
ycount = GFC_DESCRIPTOR_EXTENT(source,1);
- rxstride = GFC_DESCRIPTOR_STRIDE(ret,0);
- rystride = GFC_DESCRIPTOR_STRIDE(ret,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1);
rptr = ret->base_addr;
sptr = source->base_addr;
diff --git a/libgfortran/generated/transpose_r10.c b/libgfortran/generated/transpose_r10.c
index 2ce05798b3d..b1232984054 100644
--- a/libgfortran/generated/transpose_r10.c
+++ b/libgfortran/generated/transpose_r10.c
@@ -52,13 +52,13 @@ transpose_r10 (gfc_array_r10 * const restrict ret,
if (ret->base_addr == NULL)
{
assert (GFC_DESCRIPTOR_RANK (ret) == 2);
- assert (ret->dtype == source->dtype);
+ assert (ret->type == source->type);
- GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1,
- 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1),
+ sizeof (GFC_REAL_10));
- GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1,
- GFC_DESCRIPTOR_EXTENT(source, 1));
+ GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0),
+ GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_REAL_10));
ret->base_addr = xmallocarray (size0 ((array_t *) ret),
sizeof (GFC_REAL_10));
@@ -87,13 +87,13 @@ transpose_r10 (gfc_array_r10 * const restrict ret,
}
- sxstride = GFC_DESCRIPTOR_STRIDE(source,0);
- systride = GFC_DESCRIPTOR_STRIDE(source,1);
+ sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0);
+ systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1);
xcount = GFC_DESCRIPTOR_EXTENT(source,0);
ycount = GFC_DESCRIPTOR_EXTENT(source,1);
- rxstride = GFC_DESCRIPTOR_STRIDE(ret,0);
- rystride = GFC_DESCRIPTOR_STRIDE(ret,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1);
rptr = ret->base_addr;
sptr = source->base_addr;
diff --git a/libgfortran/generated/transpose_r16.c b/libgfortran/generated/transpose_r16.c
index 5009d16cc13..fb853c2a2c7 100644
--- a/libgfortran/generated/transpose_r16.c
+++ b/libgfortran/generated/transpose_r16.c
@@ -52,13 +52,13 @@ transpose_r16 (gfc_array_r16 * const restrict ret,
if (ret->base_addr == NULL)
{
assert (GFC_DESCRIPTOR_RANK (ret) == 2);
- assert (ret->dtype == source->dtype);
+ assert (ret->type == source->type);
- GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1,
- 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1),
+ sizeof (GFC_REAL_16));
- GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1,
- GFC_DESCRIPTOR_EXTENT(source, 1));
+ GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0),
+ GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_REAL_16));
ret->base_addr = xmallocarray (size0 ((array_t *) ret),
sizeof (GFC_REAL_16));
@@ -87,13 +87,13 @@ transpose_r16 (gfc_array_r16 * const restrict ret,
}
- sxstride = GFC_DESCRIPTOR_STRIDE(source,0);
- systride = GFC_DESCRIPTOR_STRIDE(source,1);
+ sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0);
+ systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1);
xcount = GFC_DESCRIPTOR_EXTENT(source,0);
ycount = GFC_DESCRIPTOR_EXTENT(source,1);
- rxstride = GFC_DESCRIPTOR_STRIDE(ret,0);
- rystride = GFC_DESCRIPTOR_STRIDE(ret,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1);
rptr = ret->base_addr;
sptr = source->base_addr;
diff --git a/libgfortran/generated/transpose_r4.c b/libgfortran/generated/transpose_r4.c
index 71f70fcd9b0..98bad752bf2 100644
--- a/libgfortran/generated/transpose_r4.c
+++ b/libgfortran/generated/transpose_r4.c
@@ -52,13 +52,13 @@ transpose_r4 (gfc_array_r4 * const restrict ret,
if (ret->base_addr == NULL)
{
assert (GFC_DESCRIPTOR_RANK (ret) == 2);
- assert (ret->dtype == source->dtype);
+ assert (ret->type == source->type);
- GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1,
- 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1),
+ sizeof (GFC_REAL_4));
- GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1,
- GFC_DESCRIPTOR_EXTENT(source, 1));
+ GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0),
+ GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_REAL_4));
ret->base_addr = xmallocarray (size0 ((array_t *) ret),
sizeof (GFC_REAL_4));
@@ -87,13 +87,13 @@ transpose_r4 (gfc_array_r4 * const restrict ret,
}
- sxstride = GFC_DESCRIPTOR_STRIDE(source,0);
- systride = GFC_DESCRIPTOR_STRIDE(source,1);
+ sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0);
+ systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1);
xcount = GFC_DESCRIPTOR_EXTENT(source,0);
ycount = GFC_DESCRIPTOR_EXTENT(source,1);
- rxstride = GFC_DESCRIPTOR_STRIDE(ret,0);
- rystride = GFC_DESCRIPTOR_STRIDE(ret,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1);
rptr = ret->base_addr;
sptr = source->base_addr;
diff --git a/libgfortran/generated/transpose_r8.c b/libgfortran/generated/transpose_r8.c
index 9f541e0fb7e..17926bddab7 100644
--- a/libgfortran/generated/transpose_r8.c
+++ b/libgfortran/generated/transpose_r8.c
@@ -52,13 +52,13 @@ transpose_r8 (gfc_array_r8 * const restrict ret,
if (ret->base_addr == NULL)
{
assert (GFC_DESCRIPTOR_RANK (ret) == 2);
- assert (ret->dtype == source->dtype);
+ assert (ret->type == source->type);
- GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1,
- 1);
+ GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1),
+ sizeof (GFC_REAL_8));
- GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1,
- GFC_DESCRIPTOR_EXTENT(source, 1));
+ GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0),
+ GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_REAL_8));
ret->base_addr = xmallocarray (size0 ((array_t *) ret),
sizeof (GFC_REAL_8));
@@ -87,13 +87,13 @@ transpose_r8 (gfc_array_r8 * const restrict ret,
}
- sxstride = GFC_DESCRIPTOR_STRIDE(source,0);
- systride = GFC_DESCRIPTOR_STRIDE(source,1);
+ sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0);
+ systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1);
xcount = GFC_DESCRIPTOR_EXTENT(source,0);
ycount = GFC_DESCRIPTOR_EXTENT(source,1);
- rxstride = GFC_DESCRIPTOR_STRIDE(ret,0);
- rystride = GFC_DESCRIPTOR_STRIDE(ret,1);
+ rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0);
+ rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1);
rptr = ret->base_addr;
sptr = source->base_addr;
diff --git a/libgfortran/generated/unpack_c10.c b/libgfortran/generated/unpack_c10.c
index 6fc2bdc8796..57a53f1a6f7 100644
--- a/libgfortran/generated/unpack_c10.c
+++ b/libgfortran/generated/unpack_c10.c
@@ -66,7 +66,7 @@ unpack0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_COMPLEX_10));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_COMPLEX_10));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_c16.c b/libgfortran/generated/unpack_c16.c
index 443a51eea04..1e6e1cf7652 100644
--- a/libgfortran/generated/unpack_c16.c
+++ b/libgfortran/generated/unpack_c16.c
@@ -66,7 +66,7 @@ unpack0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_COMPLEX_16));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_COMPLEX_16));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_c4.c b/libgfortran/generated/unpack_c4.c
index c8b30f5e6d6..4bfe5f750ee 100644
--- a/libgfortran/generated/unpack_c4.c
+++ b/libgfortran/generated/unpack_c4.c
@@ -66,7 +66,7 @@ unpack0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_COMPLEX_4));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_COMPLEX_4));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_c8.c b/libgfortran/generated/unpack_c8.c
index 60d9de1b650..4800498767e 100644
--- a/libgfortran/generated/unpack_c8.c
+++ b/libgfortran/generated/unpack_c8.c
@@ -66,7 +66,7 @@ unpack0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_COMPLEX_8));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_COMPLEX_8));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_i1.c b/libgfortran/generated/unpack_i1.c
index 522ce74a9fd..51101e0ddf0 100644
--- a/libgfortran/generated/unpack_i1.c
+++ b/libgfortran/generated/unpack_i1.c
@@ -66,7 +66,7 @@ unpack0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_INTEGER_1));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_INTEGER_1));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_i16.c b/libgfortran/generated/unpack_i16.c
index 7e0d1f766d5..feaed3dec65 100644
--- a/libgfortran/generated/unpack_i16.c
+++ b/libgfortran/generated/unpack_i16.c
@@ -66,7 +66,7 @@ unpack0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_INTEGER_16));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_INTEGER_16));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_i2.c b/libgfortran/generated/unpack_i2.c
index b0d21dc246f..45e0aa0cb55 100644
--- a/libgfortran/generated/unpack_i2.c
+++ b/libgfortran/generated/unpack_i2.c
@@ -66,7 +66,7 @@ unpack0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_INTEGER_2));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_INTEGER_2));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_i4.c b/libgfortran/generated/unpack_i4.c
index beac1969a5d..c58287ae037 100644
--- a/libgfortran/generated/unpack_i4.c
+++ b/libgfortran/generated/unpack_i4.c
@@ -66,7 +66,7 @@ unpack0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_INTEGER_4));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_INTEGER_4));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_i8.c b/libgfortran/generated/unpack_i8.c
index 75cd2e93fe4..3c1c1afe695 100644
--- a/libgfortran/generated/unpack_i8.c
+++ b/libgfortran/generated/unpack_i8.c
@@ -66,7 +66,7 @@ unpack0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_INTEGER_8));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_INTEGER_8));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_r10.c b/libgfortran/generated/unpack_r10.c
index 926a45777ae..e2737a625f3 100644
--- a/libgfortran/generated/unpack_r10.c
+++ b/libgfortran/generated/unpack_r10.c
@@ -66,7 +66,7 @@ unpack0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_REAL_10));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_REAL_10));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_r16.c b/libgfortran/generated/unpack_r16.c
index 6fff184cdfa..8ce95c800a5 100644
--- a/libgfortran/generated/unpack_r16.c
+++ b/libgfortran/generated/unpack_r16.c
@@ -66,7 +66,7 @@ unpack0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_REAL_16));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_REAL_16));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_r4.c b/libgfortran/generated/unpack_r4.c
index c9008745f3a..2e977ad466c 100644
--- a/libgfortran/generated/unpack_r4.c
+++ b/libgfortran/generated/unpack_r4.c
@@ -66,7 +66,7 @@ unpack0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_REAL_4));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_REAL_4));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
diff --git a/libgfortran/generated/unpack_r8.c b/libgfortran/generated/unpack_r8.c
index 5999a51ab68..249f6654e49 100644
--- a/libgfortran/generated/unpack_r8.c
+++ b/libgfortran/generated/unpack_r8.c
@@ -66,7 +66,7 @@ unpack0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -91,11 +91,12 @@ unpack0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_REAL_8));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -109,8 +110,8 @@ unpack0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -122,7 +123,7 @@ unpack0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];
@@ -210,7 +211,7 @@ unpack1_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
/* Use the same loop for all logical types, by using GFC_LOGICAL_1
and using shifting to address size and endian issues. */
- mask_kind = GFC_DESCRIPTOR_SIZE (mask);
+ mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask);
if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8
#ifdef HAVE_GFC_LOGICAL_16
@@ -235,12 +236,13 @@ unpack1_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
{
count[n] = 0;
GFC_DIMENSION_SET(ret->dim[n], 0,
- GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs);
+ GFC_DESCRIPTOR_EXTENT(mask,n),
+ rs * sizeof (GFC_REAL_8));
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
rs *= extent[n];
}
ret->offset = 0;
@@ -254,9 +256,9 @@ unpack1_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
count[n] = 0;
extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n);
empty = empty || extent[n] <= 0;
- rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n);
- fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n);
- mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n);
+ rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n);
+ fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n);
+ mstride[n] = GFC_DESCRIPTOR_SM(mask,n);
}
if (rstride[0] == 0)
rstride[0] = 1;
@@ -270,7 +272,7 @@ unpack1_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
if (mstride[0] == 0)
mstride[0] = 1;
- vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0);
+ vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0);
if (vstride0 == 0)
vstride0 = 1;
rstride0 = rstride[0];