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 "" }
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