1// PR 14875: When using 'or' keyword, the error message speaks of a '||' token
2// { dg-do compile }
3// { dg-options "" }
4#define CHECK(x)  void ::x
5  CHECK (and);      // { dg-error "before .and. token" }
6  CHECK (and_eq);   // { dg-error "before .and_eq. token" }
7  CHECK (bitand);   // { dg-error "before .bitand. token" }
8  CHECK (bitor);    // { dg-error "before .bitor. token" }
9  CHECK (compl);    // { dg-error "before .compl. token" }
10  CHECK (not);      // { dg-error "before .not. token" }
11  CHECK (not_eq);   // { dg-error "before .not_eq. token" }
12  CHECK (or);       // { dg-error "before .or. token" }
13  CHECK (or_eq);    // { dg-error "before .or_eq. token" }
14  CHECK (xor);      // { dg-error "before .xor. token" }
15  CHECK (xor_eq);   // { dg-error "before .xor_eq. token" }
16#undef CHECK
17#define CHECK(x)  int x
18  CHECK (<:);     // { dg-error "before .<:. token" }
19  CHECK (:>);     // { dg-error "before .:>. token" }
20#undef CHECK
21#define CHECK(x)  x
22  CHECK (<%);     // { dg-error "before .<%. token" }
23#undef CHECK
24#define CHECK(x)  x x
25  CHECK (%>);     // { dg-error "before .%>. token" }
26#undef CHECK
27#define CHECK(x)  x
28  CHECK (%:);     // { dg-error "stray .%:. " }
29  CHECK (%:%:);   // { dg-error "stray .%:%:. " }
30
31
32