| // RUN: %libomp-compile |
| // RUN: env KMP_FORKJOIN_BARRIER=0,0 %libomp-run |
| // RUN: env KMP_PLAIN_BARRIER=0,0 %libomp-run |
| // RUN: env KMP_REDUCTION_BARRIER=0,0 %libomp-run |
| // RUN: env KMP_ALIGN_ALLOC=7 %libomp-run |
| // RUN: env KMP_ALIGN_ALLOC=8 %libomp-run |
| // RUN: env KMP_AFFINITY='explicit,proclist=[0-1222333333333444444]' %libomp-run |
| // RUN: env KMP_AFFINITY=disabled OMP_DISPLAY_AFFINITY=TRUE %libomp-run |
| // |
| // Test that certain environment variable values do not crash the runtime. |
| #include <omp.h> |
| #include <stdlib.h> |
| |
| int a = 0; |
| |
| int test() { |
| #pragma omp parallel reduction(+ : a) |
| { |
| a += omp_get_thread_num(); |
| } |
| if (a == 0) { |
| // If the test passes, 'a' should not be zero |
| // because we are using reduction on thread numbers. |
| return 0; |
| } |
| return 1; |
| } |
| |
| int main(int argc, char **argv) { |
| int status = EXIT_SUCCESS; |
| if (!test()) { |
| status = EXIT_FAILURE; |
| } |
| return status; |
| } |