File: declare-target-3.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 (53 lines) | stat: -rw-r--r-- 1,652 bytes parent folder | download | duplicates (3)
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
/* { dg-do compile } */
/* { dg-options "-fopenmp" } */

#pragma omp declare target
int a[] = { 1, 2, 3 };
extern int b[];			/* { dg-error "'b' in declare target directive does not have mappable type" } */
extern int c[];			/* { dg-error "'c' in declare target directive does not have mappable type" } */
extern int d[];			/* { dg-error "'d' in declare target directive does not have mappable type" } */
int d[3];
#pragma omp end declare target
int c[3];
int e[] = { 1, 2, 3 };
#pragma omp declare target to (e)
extern int f[];
#pragma omp declare target to (f) /* { dg-error "'f' does not have a mappable type in 'to' clause" } */
extern int g[];
#pragma omp declare target to (g) /* { dg-error "'g' does not have a mappable type in 'to' clause" } */
int g[3];
extern int h[];
int h[3];
#pragma omp declare target to (h)

int i[] = { 1, 2, 3 };
int j[] = { 1, 2, 3 };
extern int k[];
extern int l[];
extern int m[];
extern int n[];
extern int o[];
extern int p[];
int k[3];
int l[3];
int q;

void
foo (void)
{
  #pragma omp target update to (q) to (i)
  #pragma omp target map (tofrom: j)
  ;
  #pragma omp target update from (q) from (k)
  #pragma omp target map (to: l)
  ;
  #pragma omp target update from (q) from (m)	/* { dg-error "'m' does not have a mappable type in 'from' clause" } */
  #pragma omp target map (from: n)		/* { dg-error "'n' does not have a mappable type in 'map' clause" } */
  ;
  #pragma omp target update to (q) to (o)	/* { dg-error "'o' does not have a mappable type in 'to' clause" } */
  #pragma omp target map (from: p)		/* { dg-error "'p' does not have a mappable type in 'map' clause" } */
  ;
}

int o[3];
int p[3];