File: depobj-1.c

package info (click to toggle)
gcc-arm-none-eabi 15%3A12.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 959,712 kB
  • sloc: cpp: 3,275,382; ansic: 2,061,766; ada: 840,956; f90: 208,513; makefile: 76,132; asm: 73,433; xml: 50,448; exp: 34,146; sh: 32,436; objc: 15,637; fortran: 14,012; python: 11,991; pascal: 6,787; awk: 4,779; perl: 3,054; yacc: 338; ml: 285; lex: 201; haskell: 122
file content (63 lines) | stat: -rw-r--r-- 3,466 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
typedef struct __attribute__((__aligned__ (sizeof (void *)))) omp_depend_t {
  char __omp_depend_t__[2 * sizeof (void *)];
} omp_depend_t;

omp_depend_t bar (void);
extern const omp_depend_t cdepobj;
extern omp_depend_t depobj;
extern omp_depend_t depobja[4];
extern omp_depend_t *pdepobj;
int a, b, i, j;

void
f1 (void)
{
  #pragma omp depobj(depobj) depend(in : a)
  #pragma omp depobj(depobj) update(inout)
  #pragma omp task depend (depobj: depobj)
  ;
  #pragma omp depobj(depobj) destroy
  #pragma omp task depend (iterator (i=1:3) , depobj: *(depobja + i))
  ;
  #pragma omp depobj(pdepobj[0]) depend(mutexinoutset:a)
  #pragma omp depobj(*pdepobj) destroy
}

void
f2 (void)
{
  omp_depend_t depobjb[4];
  #pragma omp depobj					/* { dg-error "expected" } */
  #pragma omp depobj destroy				/* { dg-error "expected" } */
  #pragma omp depobj (depobj)				/* { dg-error "expected 'depend', 'destroy' or 'update' clause" } */
  #pragma omp depobj (depobj) foobar			/* { dg-error "expected 'depend', 'destroy' or 'update' clause" } */
  #pragma omp depobj(bar ()) update(inout)		/* { dg-error "'depobj' expression is not lvalue expression" } */
  #pragma omp depobj (cdepobj) update(in)		/* { dg-error "'const' qualified 'depobj' expression" } */
  #pragma omp depobj (depobjb) depend(in: a)		/* { dg-error "type of 'depobj' expression is not 'omp_depend_t'" } */
  #pragma omp depobj (pdepobj) depend(in: a)		/* { dg-error "type of 'depobj' expression is not 'omp_depend_t'" } */
  #pragma omp depobj (a) destroy			/* { dg-error "type of 'depobj' expression is not 'omp_depend_t'" } */
  #pragma omp depobj (depobj) depend(depobj:a)		/* { dg-error "does not have 'omp_depend_t' type in 'depend' clause with 'depobj' dependence type" } */
  #pragma omp depobj (depobj) depend(depobj:*depobjb)	/* { dg-error "'depobj' dependence type specified in 'depend' clause on 'depobj' construct" } */
  #pragma omp depobj (depobj) update(foobar)		/* { dg-error "expected 'in', 'out', 'inout' or 'mutexinoutset'" } */
  #pragma omp depobj (depobj) depend(in: *depobja)	/* { dg-error "should not have 'omp_depend_t' type in 'depend' clause with dependence type" } */
  #pragma omp depobj (depobj) depend(in: a) depend(in: b)	/* { dg-error "expected" } */
  #pragma omp depobj (depobj) depend(in: a) update(out)	/* { dg-error "expected" } */
  #pragma omp depobj (depobj) depend(in: a, b)		/* { dg-error "more than one locator in 'depend' clause on 'depobj' construct" } */
  #pragma omp depobj (depobj) depend(source)		/* { dg-error "'depend\\(source\\)' is only allowed in 'omp ordered'" } */
  #pragma omp depobj (depobj) depend(sink: i + 1, j - 1)	/* { dg-error "'depend\\(sink\\)' is only allowed in 'omp ordered'" } */
  #pragma omp depobj (depobj) depend(iterator (i = 0:2) , in : a)	/* { dg-error "'iterator' modifier may not be specified on 'depobj' construct" } */
  if (0)
    #pragma omp depobj (depobj) destroy			/* { dg-error "'#pragma omp depobj' may only be used in compound statements" } */
    ;
}

void
f3 (void)
{
  #pragma omp task depend (depobj: depobja[1:2])	/* { dg-error "'depend' clause with 'depobj' dependence type on array section" } */
  ;
  #pragma omp task depend (depobj: a)			/* { dg-error "'a' does not have 'omp_depend_t' type in 'depend' clause with 'depobj' dependence type" } */
  ;
  #pragma omp task depend (in: depobj)			/* { dg-error "'depobj' should not have 'omp_depend_t' type in 'depend' clause with dependence type" } */
  ;
}