[cfe-commits] r73153 - in /cfe/trunk: lib/Lex/LiteralSupport.cpp test/Lexer/char-escapes.c
Eli Friedman
eli.friedman at gmail.com
Tue Jun 9 18:32:39 PDT 2009
Author: efriedma
Date: Tue Jun 9 20:32:39 2009
New Revision: 73153
URL: http://llvm.org/viewvc/llvm-project?rev=73153&view=rev
Log:
PR4353: Add support for \E as a character escape.
Added:
cfe/trunk/test/Lexer/char-escapes.c
Modified:
cfe/trunk/lib/Lex/LiteralSupport.cpp
Modified: cfe/trunk/lib/Lex/LiteralSupport.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/LiteralSupport.cpp?rev=73153&r1=73152&r2=73153&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/LiteralSupport.cpp (original)
+++ cfe/trunk/lib/Lex/LiteralSupport.cpp Tue Jun 9 20:32:39 2009
@@ -56,6 +56,10 @@
PP.Diag(Loc, diag::ext_nonstandard_escape) << "e";
ResultChar = 27;
break;
+ case 'E':
+ PP.Diag(Loc, diag::ext_nonstandard_escape) << "E";
+ ResultChar = 27;
+ break;
case 'f':
ResultChar = 12;
break;
@@ -135,7 +139,6 @@
PP.Diag(Loc, diag::ext_nonstandard_escape)
<< std::string()+(char)ResultChar;
break;
- // FALL THROUGH.
default:
if (isgraph(ThisTokBuf[0]))
PP.Diag(Loc, diag::ext_unknown_escape) << std::string()+(char)ResultChar;
Added: cfe/trunk/test/Lexer/char-escapes.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/char-escapes.c?rev=73153&view=auto
==============================================================================
--- cfe/trunk/test/Lexer/char-escapes.c (added)
+++ cfe/trunk/test/Lexer/char-escapes.c Tue Jun 9 20:32:39 2009
@@ -0,0 +1,21 @@
+// RUN: clang-cc -fsyntax-only -pedantic -verify %s
+
+int test['\\' == 92 ? 1 : -1];
+int test['\"' == 34 ? 1 : -1];
+int test['\'' == 39 ? 1 : -1];
+int test['\?' == 63 ? 1 : -1];
+int test['\a' == 7 ? 1 : -1];
+int test['\b' == 8 ? 1 : -1];
+int test['\e' == 27 ? 1 : -1]; // expected-warning {{non-standard escape}}
+int test['\E' == 27 ? 1 : -1]; // expected-warning {{non-standard escape}}
+int test['\f' == 12 ? 1 : -1];
+int test['\n' == 10 ? 1 : -1];
+int test['\r' == 13 ? 1 : -1];
+int test['\t' == 9 ? 1 : -1];
+int test['\v' == 11 ? 1 : -1];
+int test['\xa' == 10 ? 1 : -1];
+int test['\1' == 1 ? 1 : -1];
+int test['\(' == 40 ? 1 : -1]; // expected-warning {{non-standard escape}}
+int test['\{' == 123 ? 1 : -1]; // expected-warning {{non-standard escape}}
+int test['\[' == 91 ? 1 : -1]; // expected-warning {{non-standard escape}}
+int test['\%' == 37 ? 1 : -1]; // expected-warning {{non-standard escape}}
More information about the cfe-commits
mailing list