/* PR c/4389
   This testcase failed because host_integerp (x, 0) was returning
   1 even for constants bigger than 2^31.  It fails under under hpux
   without -mdisable-indexing because the pointer x - 1 is used as
   the base address of an indexed load.  Because the struct A is not
   actually allocated, x - 1 lies in the text segment and this causes
   the wrong space register to be selected for the load.  */
/* { dg-do run } */
/* { dg-options "-O2" } */
/* { dg-options "-O2 -mdisable-indexing" { target hppa*-*-hpux* } } */

/* Disable the test entirely for 16-bit targets.  */
#if __INT_MAX__ > 32767

extern void abort (void);
extern void exit (int);
struct A {
  int a[10000][10000];
};
int b[2] = { 213151, 0 };

void foo (struct A *x, int y)
{
  if (x->a[9999][9999] != x->a[y][y])
    abort ();
  if (x->a[9999][9999] != 213151)
    abort ();
}

int main (void)
{
  struct A *x;
  asm ("" : "=r" (x) : "0" (&b[1]));
  foo (x - 1, 9999);
  exit (0);
}

#else

int main () { return 0; }

#endif /* __INT_MAX__ */
