https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118471

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
So it works for the non-pointer case

  real(kind=8), contiguous :: a(:)

where we get

  stride.1 = 1;
...
          (*a.0)[(integer(kind=8)) i * stride.1 + offset.2] = 1.0e+0;

but with 'pointer' we have

          *(real(kind=8) *) (a->data + (sizetype) ((a->offset +
(integer(kind=8)) i) * a->span)) = 1.0e+0;

and no "stride" mentioned at all.  When 'contiguous' isn't specified we get

          *(real(kind=8) *) (a->data + (sizetype) ((a->offset +
(integer(kind=8)) i * a->dim[0].stride) * a->span)) = 1.0e+0;

Reply via email to