1 | // RUN: %gdb-compile 2>&1 | tee %t.compile |
2 | // RUN: %gdb-test -x %s.cmd %t 2>&1 | tee %t.out | FileCheck %s |
3 | |
4 | #include <omp.h> |
5 | #include <stdio.h> |
6 | int get_fib_num(int num) { |
7 | int t1, t2; |
8 | if (num < 2) |
9 | return num; |
10 | else { |
11 | #pragma omp task shared(t1) |
12 | t1 = get_fib_num(num: num - 1); |
13 | #pragma omp task shared(t2) |
14 | t2 = get_fib_num(num: num - 2); |
15 | #pragma omp taskwait |
16 | return t1 + t2; |
17 | } |
18 | } |
19 | |
20 | int main() { |
21 | int ret = 0; |
22 | omp_set_num_threads(2); |
23 | #pragma omp parallel |
24 | { ret = get_fib_num(num: 10); } |
25 | printf(format: "Fib of 10 is %d" , ret); |
26 | return 0; |
27 | } |
28 | |
29 | // CHECK-NOT: Failed |
30 | // CHECK-NOT: Skip |
31 | |