aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/gomp/error-3.c
blob: d2b8b830bd1ef7dc37a55f56e01c864e30679f88 (plain)
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
64
65
66
67
68
69
70
#pragma omp error asdf				/* { dg-error "expected 'at', 'severity' or 'message' clause" } */
#pragma omp error at				/* { dg-error "expected '\\\(' before end of line" } */
#pragma omp error at(				/* { dg-error "expected 'execution' or 'compilation'" } */
						/* { dg-error "expected '\\\)' before end of line" "" { target *-*-* } .-1 } */
#pragma omp error at(runtime)			/* { dg-error "expected 'execution' or 'compilation'" } */
#pragma omp error at(+				/* { dg-error "expected 'execution' or 'compilation'" } */
						/* { dg-error "expected '\\\)' before '\\\+' token" "" { target *-*-* } .-1 } */
#pragma omp error at(compilation		/* { dg-error "expected '\\\)' before end of line" } */
						/* { dg-error "'pragma omp error' encountered" "" { target *-*-* } .-1 } */
#pragma omp error severity			/* { dg-error "expected '\\\(' before end of line" } */
#pragma omp error severity(			/* { dg-error "expected 'warning' or 'fatal'" } */
						/* { dg-error "expected '\\\)' before end of line" "" { target *-*-* } .-1 } */
#pragma omp error severity(error)		/* { dg-error "expected 'warning' or 'fatal'" } */
#pragma omp error severity(-			/* { dg-error "expected 'warning' or 'fatal'" } */
						/* { dg-error "expected '\\\)' before '-' token" "" { target *-*-* } .-1 } */
#pragma omp error severity(fatal		/* { dg-error "expected '\\\)' before end of line" } */
						/* { dg-error "'pragma omp error' encountered" "" { target *-*-* } .-1 } */
#pragma omp error message			/* { dg-error "expected '\\\(' before end of line" } */
#pragma omp error message(			/* { dg-error "expected expression before end of line" "" { target c } } */
						/* { dg-error "expected primary-expression before end of line" "" { target c++ } .-1 } */
						/* { dg-error "expected '\\\)' before end of line" "" { target c++ } .-2 } */
						/* { dg-error "'pragma omp error' encountered: <message unknown at compile time>" "" { target *-*-* } .-3 } */
#pragma omp error message(0			/* { dg-error "expected '\\\)' before end of line" } */
						/* { dg-error "'pragma omp error' encountered: <message unknown at compile time>" "" { target *-*-* } .-1 } */
#pragma omp error message("foo"			/* { dg-error "expected '\\\)' before end of line" } */
						/* { dg-error "'pragma omp error' encountered: foo" "" { target *-*-* } .-1 } */
#pragma omp error message(1)			/* { dg-error "'pragma omp error' encountered: <message unknown at compile time>" } */
						/* { dg-error "invalid conversion from 'int' to 'const char\\*'" "" { target c++ } .-1 } */
#pragma omp error message(1.2)			/* { dg-error "cannot convert to a pointer type" "" { target c } } */
						/* { dg-error "could not convert" "" { target c++ } .-1 } */
						/* { dg-error "'pragma omp error' encountered: <message unknown at compile time>" "" { target *-*-* } .-2 } */
#pragma omp error message(L"bar")		/* { dg-error "'pragma omp error' encountered: <message unknown at compile time>" } */
						/* { dg-error "could not convert" "" { target c++ } .-1 } */
#pragma omp error message("foo"),at(compilation),severity(fatal),	/* { dg-error "expected end of line before ',' token" } */
						/* { dg-error "'pragma omp error' encountered: foo" "" { target *-*-* } .-1 } */
#pragma omp error message("foo"),at(compilation),severity(fatal),asdf	/* { dg-error "expected 'at', 'severity' or 'message' clause" } */
#pragma omp error at(compilation) at(compilation)	/* { dg-error "too many 'at' clauses" } */
#pragma omp error severity(fatal) severity(warning)	/* { dg-error "too many 'severity' clauses" } */
#pragma omp error message("foo") message("foo")		/* { dg-error "too many 'message' clauses" } */
#pragma omp error at(execution)			/* { dg-error "'#pragma omp error' with 'at\\\(execution\\\)' clause may only be used in compound statements" } */

struct S
{
  #pragma omp error at(execution) message("foo")/* { dg-error "'#pragma omp error' with 'at\\\(execution\\\)' clause may only be used in compound statements" } */
  int s;
};

int
foo (int i, int x, const char *msg)
{
  #pragma omp error message(msg)		/* { dg-error "'pragma omp error' encountered: <message unknown at compile time>" } */
  if (x)
    #pragma omp error at(execution)		/* { dg-error "'#pragma omp error' with 'at\\\(execution\\\)' clause may only be used in compound statements" } */
  i++;
  if (x)
    ;
  else
    #pragma omp error at(execution) severity(warning)	/* { dg-error "'#pragma omp error' with 'at\\\(execution\\\)' clause may only be used in compound statements" } */
  i++;
  switch (0)
    #pragma omp error severity(fatal) at(execution)	/* { dg-error "'#pragma omp error' with 'at\\\(execution\\\)' clause may only be used in compound statements" } */
    ;
  while (0)
    #pragma omp error at(execution)message("42 - 1")	/* { dg-error "'#pragma omp error' with 'at\\\(execution\\\)' clause may only be used in compound statements" } */
    i++;
  lab:
  #pragma omp error severity(warning) message("bar") at(execution)	/* { dg-error "'#pragma omp error' with 'at\\\(execution\\\)' clause may only be used in compound statements" } */
    i++;
  return i;
}