1 #include <stdlib.h> 2 3 #define SIZE 16 4 5 char b[SIZE]; 6 char a[SIZE]; 7 8 int 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