1*1099498eSVignesh Balasubramanian // RUN: %gdb-compile-and-run 2>&1 | tee %t.out | FileCheck %s 2*1099498eSVignesh Balasubramanian 3*1099498eSVignesh Balasubramanian #include "../ompt_plugin.h" 4*1099498eSVignesh Balasubramanian #include <omp.h> 5*1099498eSVignesh Balasubramanian #include <stdio.h> 6*1099498eSVignesh Balasubramanian #include <stdlib.h> 7*1099498eSVignesh Balasubramanian fib(int n)8*1099498eSVignesh Balasubramanianint fib(int n) { 9*1099498eSVignesh Balasubramanian int i, j; 10*1099498eSVignesh Balasubramanian if (n < 2) { 11*1099498eSVignesh Balasubramanian ompd_tool_test(0); 12*1099498eSVignesh Balasubramanian return n; 13*1099498eSVignesh Balasubramanian } else { 14*1099498eSVignesh Balasubramanian #pragma omp task shared(i) 15*1099498eSVignesh Balasubramanian i = fib(n - 1); 16*1099498eSVignesh Balasubramanian #pragma omp task shared(j) 17*1099498eSVignesh Balasubramanian j = fib(n - 2); 18*1099498eSVignesh Balasubramanian #pragma omp taskwait 19*1099498eSVignesh Balasubramanian return i + j; 20*1099498eSVignesh Balasubramanian } 21*1099498eSVignesh Balasubramanian } 22*1099498eSVignesh Balasubramanian main(int argc,char ** argv)23*1099498eSVignesh Balasubramanianint main(int argc, char **argv) { 24*1099498eSVignesh Balasubramanian int n = 5; 25*1099498eSVignesh Balasubramanian if (argc > 1) 26*1099498eSVignesh Balasubramanian n = atoi(argv[1]); 27*1099498eSVignesh Balasubramanian #pragma omp parallel 28*1099498eSVignesh Balasubramanian { 29*1099498eSVignesh Balasubramanian #pragma omp single 30*1099498eSVignesh Balasubramanian printf("fib(%i) = %i\n", n, fib(n)); 31*1099498eSVignesh Balasubramanian } 32*1099498eSVignesh Balasubramanian return 0; 33*1099498eSVignesh Balasubramanian } 34*1099498eSVignesh Balasubramanian 35*1099498eSVignesh Balasubramanian // CHECK-NOT: OMPT-OMPD mismatch 36*1099498eSVignesh Balasubramanian // CHECK-NOT: Python Exception 37*1099498eSVignesh Balasubramanian // CHECK-NOT: The program is not being run. 38