Author: jrose
Date: Mon Jan 28 11:49:02 2013
New Revision: 173701
URL: http://llvm.org/viewvc/llvm-project?rev=173701&view=rev
Log:
PR15067 (again): Don't warn about UCNs in C90 if we're raw-lexing.
Fixes a crash. Thanks, Richard.
Modified:
cfe/trunk/lib/Lex/Lexer.cpp
cfe/trunk/test/Lexer/c90.c
Modified: cfe/trunk/lib/Lex/Lexer.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/Lexer.cpp?rev=173701&r1=173700&r2=173701&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/Lexer.cpp (original)
+++ cfe/trunk/lib/Lex/Lexer.cpp Mon Jan 28 11:49:02 2013
@@ -2710,7 +2710,8 @@ uint32_t Lexer::tryReadUCN(const char *&
return 0;
if (!LangOpts.CPlusPlus && !LangOpts.C99) {
- Diag(SlashLoc, diag::warn_ucn_not_valid_in_c89);
+ if (Result && !isLexingRawMode())
+ Diag(SlashLoc, diag::warn_ucn_not_valid_in_c89);
return 0;
}
Modified: cfe/trunk/test/Lexer/c90.c
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/c90.c?rev=173701&r1=173700&r2=173701&view=diff
==============================================================================
--- cfe/trunk/test/Lexer/c90.c (original)
+++ cfe/trunk/test/Lexer/c90.c Mon Jan 28 11:49:02 2013
@@ -41,3 +41,6 @@ int test4() {
}
#define MY_UCN \u00FC // expected-warning {{universal character names are only
valid in C99 or C++; treating as '\' followed by identifier}}
+#define NOT_A_UCN \h // no-warning
+
+extern int idWithUCN\u00FC; // expected-warning {{universal character names
are only valid in C99 or C++; treating as '\' followed by identifier}}
expected-error {{expected ';'}}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits