brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 6ecdba1 Raw
50 lines · c
1// RUN: %libomp-compile-and-run2 3#include <stdio.h>4#include <stdlib.h>5#include <omp.h>6 7int main()8{9  int res;10  res = omp_in_explicit_task();11  if (res) {12    printf("error: omp_in_explicit_task: serial1 returned %d\n", res);13    return 1;14  }15  #pragma omp parallel num_threads(2)16  {17    int r = omp_in_explicit_task();18    if (r) {19      printf("error: omp_in_explicit_task: par #%d returned %d\n",20             omp_get_thread_num(), r);21      exit(1);22    }23    #pragma omp task24    {25      int r = omp_in_explicit_task();26      if (!r) {27        printf("error: omp_in_explicit_task: task1 #%d returned %d\n",28               omp_get_thread_num(), r);29        exit(1);30      }31    }32    #pragma omp task33    {34      int r = omp_in_explicit_task();35      if (!r) {36        printf("error: omp_in_explicit_task: task2 #%d returned %d\n",37               omp_get_thread_num(), r);38        exit(1);39      }40    }41  }42  res = omp_in_explicit_task();43  if (res) {44    printf("error: omp_in_explicit_task: serial2 returned %d\n", res);45    return 1;46  }47  printf("passed\n");48  return 0;49}50