diff options
| author | Chris Lattner <sabre@nondot.org> | 2009-12-23 19:15:27 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2009-12-23 19:15:27 +0000 |
| commit | 3859c74b328e8c6a677ee4414c3f8bf5d274003d (patch) | |
| tree | 8324ba13cf4887fc6db9ca1e44692a861b17d3c1 /clang | |
| parent | a4375f1ffde7c433aa54a6c3e1df925ad615c280 (diff) | |
| download | bcm5719-llvm-3859c74b328e8c6a677ee4414c3f8bf5d274003d.tar.gz bcm5719-llvm-3859c74b328e8c6a677ee4414c3f8bf5d274003d.zip | |
fix the microsoft "charify" extension to return the charified token
as a character literal, not a string literal. This might fix
rdar://7486575
llvm-svn: 92025
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Lex/MacroArgs.cpp | 2 | ||||
| -rw-r--r-- | clang/test/Parser/MicrosoftExtensions.c | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Lex/MacroArgs.cpp b/clang/lib/Lex/MacroArgs.cpp index 34b1ef8fc0f..c2cf623317e 100644 --- a/clang/lib/Lex/MacroArgs.cpp +++ b/clang/lib/Lex/MacroArgs.cpp @@ -178,7 +178,7 @@ Token MacroArgs::StringifyArgument(const Token *ArgToks, Preprocessor &PP, bool Charify) { Token Tok; Tok.startToken(); - Tok.setKind(tok::string_literal); + Tok.setKind(Charify ? tok::char_constant : tok::string_literal); const Token *ArgTokStart = ArgToks; diff --git a/clang/test/Parser/MicrosoftExtensions.c b/clang/test/Parser/MicrosoftExtensions.c index 00618864648..082929f6d84 100644 --- a/clang/test/Parser/MicrosoftExtensions.c +++ b/clang/test/Parser/MicrosoftExtensions.c @@ -28,3 +28,9 @@ void foo() { } typedef bool (__stdcall __stdcall *blarg)(int); + + +// Charify extension. +#define FOO(x) #@x +char x = FOO(a); + |

