]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/testsuite/gdb.threads/omp-task.c
Update copyright year range in header of all files managed by GDB
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.threads / omp-task.c
CommitLineData
6f9b09ed
AKS
1/* This testcase is part of GDB, the GNU debugger.
2
1d506c26 3 Copyright 2022-2024 Free Software Foundation, Inc.
6f9b09ed
AKS
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18 Tests which verify (or not) that GDB can access shared and private
19 clauses of OpenMP task construct.
20*/
21
22#include <stdio.h>
23#include <omp.h>
24
25int foo(int n) {
26 int share1 = 9, share2 = 11, share3 = 13, priv1, priv2, fpriv;
27 fpriv = n + 4;
28
29 if (n < 2)
30 return n;
31 else {
32#pragma omp task shared(share1, share2) private(priv1, priv2) firstprivate(fpriv) shared(share3)
33 {
34 priv1 = n;
35 priv2 = n + 2;
36 share2 += share3;
37 printf("share1 = %d, share2 = %d, share3 = %d\n", share1, share2, share3);
38 share1 = priv1 + priv2 + fpriv + foo(n - 1) + share2 + share3;
39 }
40#pragma omp taskwait
41 return share1 + share2 + share3;
42 }
43}
44
45int main() {
46 int n = 10;
47 printf("foo(%d) = %d\n", n, foo(n));
48 return 0;
49}