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