Hello world,

the attached patch removes explicit use of dtype in the
array intrinsics, replacing them by macros instead.
Functionally, this patch changes nothing.

The reason is simple: When we change the array descriptor,
for example to implement Fortran 2008 array ranks, to separate
size and rank information and to put in more status
information, we should just need to change the macros.

Regression-tested. OK for trunk?

Regards

        Thomas

2018-01-06  Thomas Koenig  <tkoe...@gcc.gnu.org>

        * libgfortran.h (GFC_DTYPE_COPY): New macro.
        (GFC_DTYPE_COPY_SETRANK): New macro.
        (GFC_DTYPE_IS_UNSET): New macro.
        * intrinsics/cshift0.c (cshift0): Use new macros.
        * intrinsics/eoshift0.c (eoshift0): Likewise.
        * intrinsics/eoshift2.c (eoshift2): Likewise.
        * intrinsics/move_alloc.c (move_alloc): Likewise.
        * intrinsics/reshape_generic.c (reshape_internal): Likewise.
        * intrinsics/spread_generic.c (spread_internal): Likewise.
        * intrinsics/spread_generic.c (spread_scalar): Likewise.
        * intrinsics/spread_generic.c (spread_char_scalar): Likewise.
        * intrinsics/spread_generic.c (spread_char4_scalar): Likewise.
        * intrinsics/unpack_generic.c (unpack0): Likewise.
        * intrinsics/unpack_generic.c (unpack0_char): Likewise.
        * intrinsics/unpack_generic.c (unpack0_char4): Likewise.
        * m4/cshift1.m4 (cshift1): Likewise.
        * m4/eoshift1.m4 (eoshift1): Likewise.
        * m4/eoshift3.m4 (eoshift3): Likewise.
        * m4/iforeach-s.m4: Likewise.
        * m4/iforeach.m4: Likewise.
        * m4/ifunction-s.m4: Likewise.
        * m4/ifunction-s2.m4: Likewise.
        * m4/ifunction.m4: Likewise.
        * m4/ifunction_logical.m4: Likewise.
        * m4/reshape.m4: Likewise.
        * m4/spread.m4: Likewise.
        * generated/all_l1.c : Regenerated.
        * generated/all_l16.c : Regenerated.
        * generated/all_l2.c : Regenerated.
        * generated/all_l4.c : Regenerated.
        * generated/all_l8.c : Regenerated.
        * generated/any_l1.c : Regenerated.
        * generated/any_l16.c : Regenerated.
        * generated/any_l2.c : Regenerated.
        * generated/any_l4.c : Regenerated.
        * generated/any_l8.c : Regenerated.
        * generated/count_16_l.c : Regenerated.
        * generated/count_1_l.c : Regenerated.
        * generated/count_2_l.c : Regenerated.
        * generated/count_4_l.c : Regenerated.
        * generated/count_8_l.c : Regenerated.
        * generated/cshift1_16.c : Regenerated.
        * generated/cshift1_4.c : Regenerated.
        * generated/cshift1_8.c : Regenerated.
        * generated/eoshift1_16.c : Regenerated.
        * generated/eoshift1_4.c : Regenerated.
        * generated/eoshift1_8.c : Regenerated.
        * generated/eoshift3_16.c : Regenerated.
        * generated/eoshift3_4.c : Regenerated.
        * generated/eoshift3_8.c : Regenerated.
        * generated/iall_i1.c : Regenerated.
        * generated/iall_i16.c : Regenerated.
        * generated/iall_i2.c : Regenerated.
        * generated/iall_i4.c : Regenerated.
        * generated/iall_i8.c : Regenerated.
        * generated/iany_i1.c : Regenerated.
        * generated/iany_i16.c : Regenerated.
        * generated/iany_i2.c : Regenerated.
        * generated/iany_i4.c : Regenerated.
        * generated/iany_i8.c : Regenerated.
        * generated/iparity_i1.c : Regenerated.
        * generated/iparity_i16.c : Regenerated.
        * generated/iparity_i2.c : Regenerated.
        * generated/iparity_i4.c : Regenerated.
        * generated/iparity_i8.c : Regenerated.
        * generated/maxloc0_16_i1.c : Regenerated.
        * generated/maxloc0_16_i16.c : Regenerated.
        * generated/maxloc0_16_i2.c : Regenerated.
        * generated/maxloc0_16_i4.c : Regenerated.
        * generated/maxloc0_16_i8.c : Regenerated.
        * generated/maxloc0_16_r10.c : Regenerated.
        * generated/maxloc0_16_r16.c : Regenerated.
        * generated/maxloc0_16_r4.c : Regenerated.
        * generated/maxloc0_16_r8.c : Regenerated.
        * generated/maxloc0_16_s1.c : Regenerated.
        * generated/maxloc0_16_s4.c : Regenerated.
        * generated/maxloc0_4_i1.c : Regenerated.
        * generated/maxloc0_4_i16.c : Regenerated.
        * generated/maxloc0_4_i2.c : Regenerated.
        * generated/maxloc0_4_i4.c : Regenerated.
        * generated/maxloc0_4_i8.c : Regenerated.
        * generated/maxloc0_4_r10.c : Regenerated.
        * generated/maxloc0_4_r16.c : Regenerated.
        * generated/maxloc0_4_r4.c : Regenerated.
        * generated/maxloc0_4_r8.c : Regenerated.
        * generated/maxloc0_4_s1.c : Regenerated.
        * generated/maxloc0_4_s4.c : Regenerated.
        * generated/maxloc0_8_i1.c : Regenerated.
        * generated/maxloc0_8_i16.c : Regenerated.
        * generated/maxloc0_8_i2.c : Regenerated.
        * generated/maxloc0_8_i4.c : Regenerated.
        * generated/maxloc0_8_i8.c : Regenerated.
        * generated/maxloc0_8_r10.c : Regenerated.
        * generated/maxloc0_8_r16.c : Regenerated.
        * generated/maxloc0_8_r4.c : Regenerated.
        * generated/maxloc0_8_r8.c : Regenerated.
        * generated/maxloc0_8_s1.c : Regenerated.
        * generated/maxloc0_8_s4.c : Regenerated.
        * generated/maxloc1_16_i1.c : Regenerated.
        * generated/maxloc1_16_i16.c : Regenerated.
        * generated/maxloc1_16_i2.c : Regenerated.
        * generated/maxloc1_16_i4.c : Regenerated.
        * generated/maxloc1_16_i8.c : Regenerated.
        * generated/maxloc1_16_r10.c : Regenerated.
        * generated/maxloc1_16_r16.c : Regenerated.
        * generated/maxloc1_16_r4.c : Regenerated.
        * generated/maxloc1_16_r8.c : Regenerated.
        * generated/maxloc1_16_s1.c : Regenerated.
        * generated/maxloc1_16_s4.c : Regenerated.
        * generated/maxloc1_4_i1.c : Regenerated.
        * generated/maxloc1_4_i16.c : Regenerated.
        * generated/maxloc1_4_i2.c : Regenerated.
        * generated/maxloc1_4_i4.c : Regenerated.
        * generated/maxloc1_4_i8.c : Regenerated.
        * generated/maxloc1_4_r10.c : Regenerated.
        * generated/maxloc1_4_r16.c : Regenerated.
        * generated/maxloc1_4_r4.c : Regenerated.
        * generated/maxloc1_4_r8.c : Regenerated.
        * generated/maxloc1_4_s1.c : Regenerated.
        * generated/maxloc1_4_s4.c : Regenerated.
        * generated/maxloc1_8_i1.c : Regenerated.
        * generated/maxloc1_8_i16.c : Regenerated.
        * generated/maxloc1_8_i2.c : Regenerated.
        * generated/maxloc1_8_i4.c : Regenerated.
        * generated/maxloc1_8_i8.c : Regenerated.
        * generated/maxloc1_8_r10.c : Regenerated.
        * generated/maxloc1_8_r16.c : Regenerated.
        * generated/maxloc1_8_r4.c : Regenerated.
        * generated/maxloc1_8_r8.c : Regenerated.
        * generated/maxloc1_8_s1.c : Regenerated.
        * generated/maxloc1_8_s4.c : Regenerated.
        * generated/maxval1_s1.c : Regenerated.
        * generated/maxval1_s4.c : Regenerated.
        * generated/maxval_i1.c : Regenerated.
        * generated/maxval_i16.c : Regenerated.
        * generated/maxval_i2.c : Regenerated.
        * generated/maxval_i4.c : Regenerated.
        * generated/maxval_i8.c : Regenerated.
        * generated/maxval_r10.c : Regenerated.
        * generated/maxval_r16.c : Regenerated.
        * generated/maxval_r4.c : Regenerated.
        * generated/maxval_r8.c : Regenerated.
        * generated/minloc0_16_i1.c : Regenerated.
        * generated/minloc0_16_i16.c : Regenerated.
        * generated/minloc0_16_i2.c : Regenerated.
        * generated/minloc0_16_i4.c : Regenerated.
        * generated/minloc0_16_i8.c : Regenerated.
        * generated/minloc0_16_r10.c : Regenerated.
        * generated/minloc0_16_r16.c : Regenerated.
        * generated/minloc0_16_r4.c : Regenerated.
        * generated/minloc0_16_r8.c : Regenerated.
        * generated/minloc0_16_s1.c : Regenerated.
        * generated/minloc0_16_s4.c : Regenerated.
        * generated/minloc0_4_i1.c : Regenerated.
        * generated/minloc0_4_i16.c : Regenerated.
        * generated/minloc0_4_i2.c : Regenerated.
        * generated/minloc0_4_i4.c : Regenerated.
        * generated/minloc0_4_i8.c : Regenerated.
        * generated/minloc0_4_r10.c : Regenerated.
        * generated/minloc0_4_r16.c : Regenerated.
        * generated/minloc0_4_r4.c : Regenerated.
        * generated/minloc0_4_r8.c : Regenerated.
        * generated/minloc0_4_s1.c : Regenerated.
        * generated/minloc0_4_s4.c : Regenerated.
        * generated/minloc0_8_i1.c : Regenerated.
        * generated/minloc0_8_i16.c : Regenerated.
        * generated/minloc0_8_i2.c : Regenerated.
        * generated/minloc0_8_i4.c : Regenerated.
        * generated/minloc0_8_i8.c : Regenerated.
        * generated/minloc0_8_r10.c : Regenerated.
        * generated/minloc0_8_r16.c : Regenerated.
        * generated/minloc0_8_r4.c : Regenerated.
        * generated/minloc0_8_r8.c : Regenerated.
        * generated/minloc0_8_s1.c : Regenerated.
        * generated/minloc0_8_s4.c : Regenerated.
        * generated/minloc1_16_i1.c : Regenerated.
        * generated/minloc1_16_i16.c : Regenerated.
        * generated/minloc1_16_i2.c : Regenerated.
        * generated/minloc1_16_i4.c : Regenerated.
        * generated/minloc1_16_i8.c : Regenerated.
        * generated/minloc1_16_r10.c : Regenerated.
        * generated/minloc1_16_r16.c : Regenerated.
        * generated/minloc1_16_r4.c : Regenerated.
        * generated/minloc1_16_r8.c : Regenerated.
        * generated/minloc1_16_s1.c : Regenerated.
        * generated/minloc1_16_s4.c : Regenerated.
        * generated/minloc1_4_i1.c : Regenerated.
        * generated/minloc1_4_i16.c : Regenerated.
        * generated/minloc1_4_i2.c : Regenerated.
        * generated/minloc1_4_i4.c : Regenerated.
        * generated/minloc1_4_i8.c : Regenerated.
        * generated/minloc1_4_r10.c : Regenerated.
        * generated/minloc1_4_r16.c : Regenerated.
        * generated/minloc1_4_r4.c : Regenerated.
        * generated/minloc1_4_r8.c : Regenerated.
        * generated/minloc1_4_s1.c : Regenerated.
        * generated/minloc1_4_s4.c : Regenerated.
        * generated/minloc1_8_i1.c : Regenerated.
        * generated/minloc1_8_i16.c : Regenerated.
        * generated/minloc1_8_i2.c : Regenerated.
        * generated/minloc1_8_i4.c : Regenerated.
        * generated/minloc1_8_i8.c : Regenerated.
        * generated/minloc1_8_r10.c : Regenerated.
        * generated/minloc1_8_r16.c : Regenerated.
        * generated/minloc1_8_r4.c : Regenerated.
        * generated/minloc1_8_r8.c : Regenerated.
        * generated/minloc1_8_s1.c : Regenerated.
        * generated/minloc1_8_s4.c : Regenerated.
        * generated/minval1_s1.c : Regenerated.
        * generated/minval1_s4.c : Regenerated.
        * generated/minval_i1.c : Regenerated.
        * generated/minval_i16.c : Regenerated.
        * generated/minval_i2.c : Regenerated.
        * generated/minval_i4.c : Regenerated.
        * generated/minval_i8.c : Regenerated.
        * generated/minval_r10.c : Regenerated.
        * generated/minval_r16.c : Regenerated.
        * generated/minval_r4.c : Regenerated.
        * generated/minval_r8.c : Regenerated.
        * generated/norm2_r10.c : Regenerated.
        * generated/norm2_r16.c : Regenerated.
        * generated/norm2_r4.c : Regenerated.
        * generated/norm2_r8.c : Regenerated.
        * generated/parity_l1.c : Regenerated.
        * generated/parity_l16.c : Regenerated.
        * generated/parity_l2.c : Regenerated.
        * generated/parity_l4.c : Regenerated.
        * generated/parity_l8.c : Regenerated.
        * generated/product_c10.c : Regenerated.
        * generated/product_c16.c : Regenerated.
        * generated/product_c4.c : Regenerated.
        * generated/product_c8.c : Regenerated.
        * generated/product_i1.c : Regenerated.
        * generated/product_i16.c : Regenerated.
        * generated/product_i2.c : Regenerated.
        * generated/product_i4.c : Regenerated.
        * generated/product_i8.c : Regenerated.
        * generated/product_r10.c : Regenerated.
        * generated/product_r16.c : Regenerated.
        * generated/product_r4.c : Regenerated.
        * generated/product_r8.c : Regenerated.
        * generated/reshape_c10.c : Regenerated.
        * generated/reshape_c16.c : Regenerated.
        * generated/reshape_c4.c : Regenerated.
        * generated/reshape_c8.c : Regenerated.
        * generated/reshape_i16.c : Regenerated.
        * generated/reshape_i4.c : Regenerated.
        * generated/reshape_i8.c : Regenerated.
        * generated/reshape_r10.c : Regenerated.
        * generated/reshape_r16.c : Regenerated.
        * generated/reshape_r4.c : Regenerated.
        * generated/reshape_r8.c : Regenerated.
        * generated/spread_c10.c : Regenerated.
        * generated/spread_c16.c : Regenerated.
        * generated/spread_c4.c : Regenerated.
        * generated/spread_c8.c : Regenerated.
        * generated/spread_i1.c : Regenerated.
        * generated/spread_i16.c : Regenerated.
        * generated/spread_i2.c : Regenerated.
        * generated/spread_i4.c : Regenerated.
        * generated/spread_i8.c : Regenerated.
        * generated/spread_r10.c : Regenerated.
        * generated/spread_r16.c : Regenerated.
        * generated/spread_r4.c : Regenerated.
        * generated/spread_r8.c : Regenerated.
        * generated/sum_c10.c : Regenerated.
        * generated/sum_c16.c : Regenerated.
        * generated/sum_c4.c : Regenerated.
        * generated/sum_c8.c : Regenerated.
        * generated/sum_i1.c : Regenerated.
        * generated/sum_i16.c : Regenerated.
        * generated/sum_i2.c : Regenerated.
        * generated/sum_i4.c : Regenerated.
        * generated/sum_i8.c : Regenerated.
        * generated/sum_r10.c : Regenerated.
        * generated/sum_r16.c : Regenerated.
        * generated/sum_r4.c : Regenerated.
        * generated/sum_r8.c : Regenerated.

Attachment: p2.diff.gz
Description: application/gzip

Reply via email to