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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I don't have any testcase that would exhibit a problem with variable low-bound,
but that is not a proof there isn't a problem.

Trying:
typedef __UINTPTR_TYPE__ uintptr_t;
void bar (unsigned short *, unsigned short *);

int
foo (int x, int y, int z)
{
  unsigned short a[10], b[10];
  bar (a, b);
  uintptr_t ai = (uintptr_t) a;
  uintptr_t bi = (uintptr_t) b;
  ai -= 16;
  bi -= x;
  unsigned short *ap = (unsigned short *) ai;
  unsigned short *bp = (unsigned short *) bi;
  return ap[19] + bp[19] + ap[y] + bp[z];
}
reveals that we don't fold this and therefore it isn't a problem.  So perhaps I
just should go through that way internally on the omp-low.c side.

Reply via email to