1117395Skan// PR 14875: When using 'or' keyword, the error message speaks of a '||' token
2169689Skan// { dg-do compile }
3117395Skan// { dg-options "" }
4117395Skan#define CHECK(x)  void ::x
5117395Skan  CHECK (and);      // { dg-error "before .and. token" }
6117395Skan  CHECK (and_eq);   // { dg-error "before .and_eq. token" }
7117395Skan  CHECK (bitand);   // { dg-error "before .bitand. token" }
8117395Skan  CHECK (bitor);    // { dg-error "before .bitor. token" }
9117395Skan  CHECK (compl);    // { dg-error "before .compl. token" }
10117395Skan  CHECK (not);      // { dg-error "before .not. token" }
11117395Skan  CHECK (not_eq);   // { dg-error "before .not_eq. token" }
12117395Skan  CHECK (or);       // { dg-error "before .or. token" }
13117395Skan  CHECK (or_eq);    // { dg-error "before .or_eq. token" }
14117395Skan  CHECK (xor);      // { dg-error "before .xor. token" }
15117395Skan  CHECK (xor_eq);   // { dg-error "before .xor_eq. token" }
16117395Skan#undef CHECK
17117395Skan#define CHECK(x)  int x
18117395Skan  CHECK (<:);     // { dg-error "before .<:. token" }
19169689Skan  CHECK (:>);     // { dg-error "before .:>. token" }
20169689Skan#undef CHECK
21117395Skan#define CHECK(x)  x
22117395Skan  CHECK (<%);     // { dg-error "before .<%. token" }
23117395Skan#undef CHECK
24132718Skan#define CHECK(x)  x x
25132718Skan  CHECK (%>);     // { dg-error "before .%>. token" }
26117395Skan#undef CHECK
27117395Skan#define CHECK(x)  x
28117395Skan  CHECK (%:);     // { dg-error "stray .%:. " }
29117395Skan  CHECK (%:%:);   // { dg-error "stray .%:%:. " }
30117395Skan
31117395Skan
32117395Skan