diff options
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Preprocessor/macro_paste_bad.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/Preprocessor/macro_paste_bad.c b/clang/test/Preprocessor/macro_paste_bad.c index f70c3b3ba2e..b43d70b0c4e 100644 --- a/clang/test/Preprocessor/macro_paste_bad.c +++ b/clang/test/Preprocessor/macro_paste_bad.c @@ -18,3 +18,16 @@ XYZ #define i ## // expected-error {{'##' cannot appear at start of macro expansion}} #define j() ## // expected-error {{'##' cannot appear at start of macro expansion}} +// Invalid token pasting. +// PR3918 + +// When pasting creates poisoned identifiers, we error. +#pragma GCC poison BLARG +BLARG // expected-error {{attempt to use a poisoned identifier}} +#define XX BL ## ARG +XX // expected-error {{attempt to use a poisoned identifier}} + +#define VA __VA_ ## ARGS__ +int VA; // expected-warning {{__VA_ARGS__ can only appear in the expansion of a C99 variadic macro}} + + |

