1#include <stdlib.h>
2
3#define SIZE 16
4
5char b[SIZE];
6char a[SIZE];
7
8int main ()
9{
10  int i, j=0, k;
11  int a_before_b = (& a[0] < & b[0]);
12  /* Rather than iterating linearly, which would allow loop unrolling
13     and mapping to pointer manipulation, we traverse the "joined"
14     arrays in some random order.  */
15  for (i=0; i<SIZE*2; i++)
16    {
17      k = rand() % (SIZE*2);
18      j += (a_before_b ? a[k] : b[k]);
19    }
20  return j;
21}
22/* { dg-output "mudflap violation 1.*" } */
23/* { dg-output "Nearby object.*" } */
24/* { dg-output "mudflap object.*\[ab\]" } */
25/* { dg-do run { xfail *-*-* } } */
26