/* PR middle-end/91830 - Bogus -Warray-bounds on strcpy into a member
   of a subobject compiling binutils
   { dg-do compile }
   { dg-options "-O2 -Wall -Wno-stringop-overflow -ftrack-macro-expansion=0" } */

extern char* strcpy (char*, const char*);
extern void sink (void*);

#define S36 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

#define S(N)   (S36 + sizeof (S36) - N - 1)

/* In the test macro, prevent the strcpy to memcpy transformation
   by using a local array initialized with the string literal.  Without
   it, GCC transforms the strcpy call with memcpy which (unfortunately)
   permits accesses that cross subobject boundaries.  */
#define T(obj, mem, n)				\
  do {						\
    struct A *pa = &obj;			\
    const char a[] = S36;			\
    strcpy (pa->mem, a + sizeof a - n - 1);	\
    sink (&obj);				\
  } while (0)


struct A { char a[3]; char b[5]; };
struct B { char c[7]; struct A a; struct A a2[2]; };

extern struct B b[];

void array_nowarn (int i)
{
  struct B *pb = b;

  T (pb[0].a, a, 0);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, a, 1);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, a, 2);          // { dg-bogus "\\\[-W" }

  T (pb[1].a, a, 0);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, a, 1);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, a, 2);          // { dg-bogus "\\\[-W" }

  T (pb[123].a, a, 0);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, a, 1);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, a, 2);        // { dg-bogus "\\\[-W" }

  T (pb[i].a, a, 0);
  T (pb[i].a, a, 1);
  T (pb[i].a, a, 2);


  T (pb[0].a, b, 0);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, b, 1);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, b, 2);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, b, 3);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, b, 4);          // { dg-bogus "\\\[-W" }

  T (pb[1].a, b, 0);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, b, 1);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, b, 2);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, b, 3);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, b, 4);          // { dg-bogus "\\\[-W" }

  T (pb[123].a, b, 0);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, b, 1);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, b, 2);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, b, 3);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, b, 4);        // { dg-bogus "\\\[-W" }

  T (pb[i].a, b, 0);
  T (pb[i].a, b, 1);
  T (pb[i].a, b, 2);
  T (pb[i].a, b, 3);
  T (pb[i].a, b, 4);


  T (pb[0].a2[0], b, 0);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[0], b, 1);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[0], b, 2);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[0], b, 3);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[0], b, 4);      // { dg-bogus "\\\[-W" }

  T (pb[1].a2[0], b, 0);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[0], b, 1);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[0], b, 2);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[0], b, 3);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[0], b, 4);      // { dg-bogus "\\\[-W" }

  T (pb[123].a2[0], b, 0);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[0], b, 1);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[0], b, 2);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[0], b, 3);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[0], b, 4);    // { dg-bogus "\\\[-W" }

  T (pb[123].a2[1], b, 0);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[1], b, 1);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[1], b, 2);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[1], b, 3);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[1], b, 4);    // { dg-bogus "\\\[-W" }

  T (pb[i].a2[0], b, 0);
  T (pb[i].a2[0], b, 1);
  T (pb[i].a2[0], b, 2);
  T (pb[i].a2[0], b, 3);
  T (pb[i].a2[0], b, 4);

  T (pb[i].a2[1], b, 0);
  T (pb[i].a2[1], b, 1);
  T (pb[i].a2[1], b, 2);
  T (pb[i].a2[1], b, 3);
  T (pb[i].a2[1], b, 4);
}

void array_warn (int i)
{
  struct B *pb = b;

  T (pb[0].a, a, 3);          // { dg-warning "\\\[-Warray-bounds" }
  T (pb[0].a, a, 4);          // { dg-warning "\\\[-Warray-bounds" }

  T (pb[1].a, a, 5);          // { dg-warning "\\\[-Warray-bounds" }
  T (pb[1].a, a, 6);          // { dg-warning "\\\[-Warray-bounds" }

  T (pb[789].a, a, 5);        // { dg-warning "\\\[-Warray-bounds" }
  T (pb[789].a, a, 6);        // { dg-warning "\\\[-Warray-bounds" }

  T (pb[i].a, a, 7);          // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a, a, 8);          // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }


  T (pb[0].a, b, 5);          // { dg-warning "\\\[-Warray-bounds" }
  T (pb[0].a, b, 6);          // { dg-warning "\\\[-Warray-bounds" }

  T (pb[1].a, b, 5);          // { dg-warning "\\\[-Warray-bounds" }
  T (pb[1].a, b, 6);          // { dg-warning "\\\[-Warray-bounds" }

  T (pb[789].a, b, 5);        // { dg-warning "\\\[-Warray-bounds" }
  T (pb[789].a, b, 6);        // { dg-warning "\\\[-Warray-bounds" }

  T (pb[i].a, b, 5);          // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a, b, 6);          // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }


  T (pb[0].a2[0], b, 5);      // { dg-warning "\\\[-Warray-bounds" }
  T (pb[0].a2[0], b, 6);      // { dg-warning "\\\[-Warray-bounds" }

  T (pb[1].a2[0], b, 5);      // { dg-warning "\\\[-Warray-bounds" }
  T (pb[1].a2[0], b, 6);      // { dg-warning "\\\[-Warray-bounds" }

  T (pb[789].a2[0], b, 5);    // { dg-warning "\\\[-Warray-bounds" }
  T (pb[789].a2[0], b, 6);    // { dg-warning "\\\[-Warray-bounds" }

  T (pb[i].a2[0], b, 5);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a2[0], b, 6);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }

  T (pb[0].a2[1], b, 5);      // { dg-warning "\\\[-Warray-bounds" }
  T (pb[0].a2[1], b, 6);      // { dg-warning "\\\[-Warray-bounds" }

  T (pb[1].a2[1], b, 5);      // { dg-warning "\\\[-Warray-bounds" }
  T (pb[1].a2[1], b, 6);      // { dg-warning "\\\[-Warray-bounds" }

  T (pb[789].a2[1], b, 5);    // { dg-warning "\\\[-Warray-bounds" }
  T (pb[789].a2[1], b, 6);    // { dg-warning "\\\[-Warray-bounds" }

  T (pb[i].a2[1], b, 5);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a2[1], b, 6);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
}

void ptr_nowarn (struct B *pb, int i)
{
  T (pb[-123].a, a, 0);       // { dg-bogus "\\\[-W" }
  T (pb[-123].a, a, 1);       // { dg-bogus "\\\[-W" }
  T (pb[-123].a, a, 2);       // { dg-bogus "\\\[-W" }

  T (pb[-2].a, a, 0);         // { dg-bogus "\\\[-W" }
  T (pb[-2].a, a, 1);         // { dg-bogus "\\\[-W" }
  T (pb[-2].a, a, 2);         // { dg-bogus "\\\[-W" }

  T (pb[-1].a, a, 0);         // { dg-bogus "\\\[-W" }
  T (pb[-1].a, a, 1);         // { dg-bogus "\\\[-W" }
  T (pb[-1].a, a, 2);         // { dg-bogus "\\\[-W" }

  T (pb[0].a, a, 0);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, a, 1);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, a, 2);          // { dg-bogus "\\\[-W" }

  T (pb[1].a, a, 0);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, a, 1);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, a, 2);          // { dg-bogus "\\\[-W" }

  T (pb[123].a, a, 0);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, a, 1);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, a, 2);        // { dg-bogus "\\\[-W" }

  T (pb[i].a, a, 0);          // { dg-bogus "\\\[-W" }
  T (pb[i].a, a, 1);          // { dg-bogus "\\\[-W" }
  T (pb[i].a, a, 2);          // { dg-bogus "\\\[-W" }


  T (pb[-123].a, b, 0);       // { dg-bogus "\\\[-W" }
  T (pb[-123].a, b, 1);       // { dg-bogus "\\\[-W" }
  T (pb[-123].a, b, 2);       // { dg-bogus "\\\[-W" }
  T (pb[-123].a, b, 3);       // { dg-bogus "\\\[-W" }
  T (pb[-123].a, b, 4);       // { dg-bogus "\\\[-W" }

  T (pb[-2].a, b, 0);         // { dg-bogus "\\\[-W" }
  T (pb[-2].a, b, 1);         // { dg-bogus "\\\[-W" }
  T (pb[-2].a, b, 2);         // { dg-bogus "\\\[-W" }
  T (pb[-2].a, b, 3);         // { dg-bogus "\\\[-W" }
  T (pb[-2].a, b, 4);         // { dg-bogus "\\\[-W" }

  T (pb[-1].a, b, 0);         // { dg-bogus "\\\[-W" }
  T (pb[-1].a, b, 1);         // { dg-bogus "\\\[-W" }
  T (pb[-1].a, b, 2);         // { dg-bogus "\\\[-W" }
  T (pb[-1].a, b, 3);         // { dg-bogus "\\\[-W" }
  T (pb[-1].a, b, 4);         // { dg-bogus "\\\[-W" }

  T (pb[0].a, b, 0);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, b, 1);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, b, 2);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, b, 3);          // { dg-bogus "\\\[-W" }
  T (pb[0].a, b, 4);          // { dg-bogus "\\\[-W" }

  T (pb[1].a, b, 0);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, b, 1);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, b, 2);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, b, 3);          // { dg-bogus "\\\[-W" }
  T (pb[1].a, b, 4);          // { dg-bogus "\\\[-W" }

  T (pb[123].a, b, 0);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, b, 1);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, b, 2);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, b, 3);        // { dg-bogus "\\\[-W" }
  T (pb[123].a, b, 4);        // { dg-bogus "\\\[-W" }

  T (pb[i].a, b, 0);
  T (pb[i].a, b, 1);
  T (pb[i].a, b, 2);
  T (pb[i].a, b, 3);
  T (pb[i].a, b, 4);


  T (pb[-123].a2[0], b, 0);   // { dg-bogus "\\\[-W" }
  T (pb[-123].a2[0], b, 1);   // { dg-bogus "\\\[-W" }
  T (pb[-123].a2[0], b, 2);   // { dg-bogus "\\\[-W" }
  T (pb[-123].a2[0], b, 3);   // { dg-bogus "\\\[-W" }
  T (pb[-123].a2[0], b, 4);   // { dg-bogus "\\\[-W" }

  T (pb[-2].a2[0], b, 0);     // { dg-bogus "\\\[-W" }
  T (pb[-2].a2[0], b, 1);     // { dg-bogus "\\\[-W" }
  T (pb[-2].a2[0], b, 2);     // { dg-bogus "\\\[-W" }
  T (pb[-2].a2[0], b, 3);     // { dg-bogus "\\\[-W" }
  T (pb[-2].a2[0], b, 4);     // { dg-bogus "\\\[-W" }

  T (pb[-1].a2[0], b, 0);     // { dg-bogus "\\\[-W" }
  T (pb[-1].a2[0], b, 1);     // { dg-bogus "\\\[-W" }
  T (pb[-1].a2[0], b, 2);     // { dg-bogus "\\\[-W" }
  T (pb[-1].a2[0], b, 3);     // { dg-bogus "\\\[-W" }
  T (pb[-1].a2[0], b, 4);     // { dg-bogus "\\\[-W" }

  T (pb[0].a2[0], b, 0);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[0], b, 1);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[0], b, 2);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[0], b, 3);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[0], b, 4);      // { dg-bogus "\\\[-W" }

  T (pb[1].a2[0], b, 0);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[0], b, 1);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[0], b, 2);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[0], b, 3);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[0], b, 4);      // { dg-bogus "\\\[-W" }

  T (pb[123].a2[0], b, 0);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[0], b, 1);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[0], b, 2);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[0], b, 3);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[0], b, 4);    // { dg-bogus "\\\[-W" }

  T (pb[i].a2[0], b, 0);
  T (pb[i].a2[0], b, 1);
  T (pb[i].a2[0], b, 2);
  T (pb[i].a2[0], b, 3);
  T (pb[i].a2[0], b, 4);

  T (pb[-123].a2[1], b, 0);   // { dg-bogus "\\\[-W" }
  T (pb[-123].a2[1], b, 1);   // { dg-bogus "\\\[-W" }
  T (pb[-123].a2[1], b, 2);   // { dg-bogus "\\\[-W" }
  T (pb[-123].a2[1], b, 3);   // { dg-bogus "\\\[-W" }
  T (pb[-123].a2[1], b, 4);   // { dg-bogus "\\\[-W" }

  T (pb[-2].a2[1], b, 0);     // { dg-bogus "\\\[-W" }
  T (pb[-2].a2[1], b, 1);     // { dg-bogus "\\\[-W" }
  T (pb[-2].a2[1], b, 2);     // { dg-bogus "\\\[-W" }
  T (pb[-2].a2[1], b, 3);     // { dg-bogus "\\\[-W" }
  T (pb[-2].a2[1], b, 4);     // { dg-bogus "\\\[-W" }

  T (pb[-1].a2[1], b, 0);     // { dg-bogus "\\\[-W" }
  T (pb[-1].a2[1], b, 1);     // { dg-bogus "\\\[-W" }
  T (pb[-1].a2[1], b, 2);     // { dg-bogus "\\\[-W" }
  T (pb[-1].a2[1], b, 3);     // { dg-bogus "\\\[-W" }
  T (pb[-1].a2[1], b, 4);     // { dg-bogus "\\\[-W" }

  T (pb[0].a2[1], b, 0);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[1], b, 1);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[1], b, 2);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[1], b, 3);      // { dg-bogus "\\\[-W" }
  T (pb[0].a2[1], b, 4);      // { dg-bogus "\\\[-W" }

  T (pb[1].a2[1], b, 0);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[1], b, 1);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[1], b, 2);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[1], b, 3);      // { dg-bogus "\\\[-W" }
  T (pb[1].a2[1], b, 4);      // { dg-bogus "\\\[-W" }

  T (pb[123].a2[1], b, 0);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[1], b, 1);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[1], b, 2);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[1], b, 3);    // { dg-bogus "\\\[-W" }
  T (pb[123].a2[1], b, 4);    // { dg-bogus "\\\[-W" }

  T (pb[i].a2[1], b, 0);
  T (pb[i].a2[1], b, 1);
  T (pb[i].a2[1], b, 2);
  T (pb[i].a2[1], b, 3);
  T (pb[i].a2[1], b, 4);

  T (pb[i].a2[i], b, 0);
  T (pb[i].a2[i], b, 1);
  T (pb[i].a2[i], b, 2);
  T (pb[i].a2[i], b, 3);
  T (pb[i].a2[i], b, 4);
}

void ptr_warn (struct B *pb, int i)
{
  T (pb[-987].a, a, 8);       // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-654].a, a, 7);       // { dg-warning "\\\[-Warray-bounds" }

  T (pb[-2].a, a, 6);         // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-2].a, a, 5);         // { dg-warning "\\\[-Warray-bounds" }

  T (pb[-1].a, a, 3);         // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-1].a, a, 4);         // { dg-warning "\\\[-Warray-bounds" }

  T (pb[0].a, a, 3);          // { dg-warning "\\\[-Warray-bounds" }
  T (pb[0].a, a, 4);          // { dg-warning "\\\[-Warray-bounds" }

  T (pb[1].a, a, 5);          // { dg-warning "\\\[-Warray-bounds" }
  T (pb[1].a, a, 6);          // { dg-warning "\\\[-Warray-bounds" }

  T (pb[789].a, a, 7);        // { dg-warning "\\\[-Warray-bounds" }
  T (pb[789].a, a, 8);        // { dg-warning "\\\[-Warray-bounds" }

  T (pb[i].a, a, 3);          // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a, a, 4);          // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a, a, 5);          // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }


  T (pb[-987].a, b, 10);      // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-654].a, b, 9);       // { dg-warning "\\\[-Warray-bounds" }

  T (pb[-2].a, b, 8);         // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-2].a, b, 7);         // { dg-warning "\\\[-Warray-bounds" }

  T (pb[-1].a, b, 6);         // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-1].a, b, 5);         // { dg-warning "\\\[-Warray-bounds" }

  T (pb[0].a, b, 5);          // { dg-warning "\\\[-Warray-bounds" }
  T (pb[0].a, b, 6);          // { dg-warning "\\\[-Warray-bounds" }

  T (pb[1].a, b, 7);          // { dg-warning "\\\[-Warray-bounds" }
  T (pb[1].a, b, 8);          // { dg-warning "\\\[-Warray-bounds" }

  T (pb[789].a, b, 9);        // { dg-warning "\\\[-Warray-bounds" }
  T (pb[789].a, b, 10);       // { dg-warning "\\\[-Warray-bounds" }

  T (pb[i].a, b, 5);          // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a, b, 6);          // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a, b, 7);          // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }


  T (pb[-987].a2[0], b, 10);  // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-654].a2[0], b, 9);   // { dg-warning "\\\[-Warray-bounds" }

  T (pb[-2].a2[0], b, 8);     // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-2].a2[0], b, 7);     // { dg-warning "\\\[-Warray-bounds" }

  T (pb[-1].a2[0], b, 6);     // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-1].a2[0], b, 5);     // { dg-warning "\\\[-Warray-bounds" }

  T (pb[0].a2[0], b, 5);      // { dg-warning "\\\[-Warray-bounds" }
  T (pb[0].a2[0], b, 6);      // { dg-warning "\\\[-Warray-bounds" }

  T (pb[1].a2[0], b, 7);      // { dg-warning "\\\[-Warray-bounds" }
  T (pb[1].a2[0], b, 8);      // { dg-warning "\\\[-Warray-bounds" }

  T (pb[789].a2[0], b, 9);    // { dg-warning "\\\[-Warray-bounds" }
  T (pb[789].a2[0], b, 10);   // { dg-warning "\\\[-Warray-bounds" }

  T (pb[i].a2[0], b, 5);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a2[0], b, 6);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a2[0], b, 7);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }

  T (pb[-987].a2[1], b, 10);  // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-654].a2[1], b, 9);   // { dg-warning "\\\[-Warray-bounds" }

  T (pb[-2].a2[1], b, 8);     // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-2].a2[1], b, 7);     // { dg-warning "\\\[-Warray-bounds" }

  T (pb[-1].a2[1], b, 6);     // { dg-warning "\\\[-Warray-bounds" }
  T (pb[-1].a2[1], b, 5);     // { dg-warning "\\\[-Warray-bounds" }

  T (pb[0].a2[1], b, 5);      // { dg-warning "\\\[-Warray-bounds" }
  T (pb[0].a2[1], b, 6);      // { dg-warning "\\\[-Warray-bounds" }

  T (pb[1].a2[1], b, 7);      // { dg-warning "\\\[-Warray-bounds" }
  T (pb[1].a2[1], b, 8);      // { dg-warning "\\\[-Warray-bounds" }

  T (pb[789].a2[1], b, 9);    // { dg-warning "\\\[-Warray-bounds" }
  T (pb[789].a2[1], b, 10);   // { dg-warning "\\\[-Warray-bounds" }

  T (pb[i].a2[1], b, 5);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a2[1], b, 6);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a2[1], b, 7);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }

  T (pb[i].a2[i], b, 5);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a2[i], b, 6);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
  T (pb[i].a2[i], b, 7);      // { dg-warning "\\\[-Warray-bounds" "pr91848" { xfail *-*-* } }
}
