| /* { dg-do run } */ |
| |
| extern void abort(void); |
| extern int rand(void); |
| |
| static void copy(int *r,int *a,int na) |
| { |
| int i; |
| for( i = 0 ; i < na ; i++ ) |
| r[i] = a[i]; |
| } |
| |
| static void foo(int *a,int na) |
| { |
| int i; |
| for( i = 0 ; i < na ; i++ ) |
| a[i] = rand(); |
| } |
| |
| static int cmp(int *a,int *b,int n) |
| { |
| int i; |
| for( i = 0 ; i < n ; i++ ) |
| if ( a[i] != b[i] ) |
| return -1; |
| return 0; |
| } |
| |
| void __attribute__((noinline,noclone)) |
| test(int sz,int comm) |
| { |
| int j,n; |
| int v[64],w[64]; |
| for( j = 1 ; j <= sz ; j++ ) |
| { |
| n = (2 * j - 1) * (2 * j - 1); |
| foo(w,n); |
| copy(v,w,n); |
| if ( comm ) |
| if ( cmp(v,w,n) ) abort (); |
| } |
| } |
| |
| int main() |
| { |
| test(2,1); |
| return 0; |
| } |