| #include <string.h> |
| #define N 1024 |
| int A[N]; |
| int B[N]; |
| |
| void loop_with_condition() { |
| int i; |
| |
| __sync_synchronize(); |
| for (i = 0; i < N; i++) { |
| if (i <= N / 2) { |
| if (i > 20) |
| A[i] = 1; |
| else |
| A[i] = 2; |
| } |
| B[i] = 3; |
| } |
| __sync_synchronize(); |
| } |
| |
| int main () { |
| int i; |
| |
| memset(A, 0, sizeof(int) * N); |
| memset(B, 0, sizeof(int) * N); |
| |
| loop_with_condition(); |
| |
| for (i = 0; i < N; i++) |
| if (B[i] != 3) |
| return 1; |
| |
| for (i = 0; i < N; i++) |
| if (i <= N / 2 && i > 20 && A[i] != 1) |
| return 1; |
| else if (i > N / 2) { |
| if (i <= 20 && A[i] != 2) |
| return 1; |
| if (i > 20 && A[i] != 0) |
| return 1; |
| } |
| return 0; |
| } |
| |