mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 21:53:12 +08:00
PR4353: Add support for \E as a character escape.
llvm-svn: 73153
This commit is contained in:
@@ -56,6 +56,10 @@ static unsigned ProcessCharEscape(const char *&ThisTokBuf,
|
||||
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 @@ static unsigned ProcessCharEscape(const char *&ThisTokBuf,
|
||||
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;
|
||||
|
||||
21
clang/test/Lexer/char-escapes.c
Normal file
21
clang/test/Lexer/char-escapes.c
Normal file
@@ -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}}
|
||||
Reference in New Issue
Block a user