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