diff options
Diffstat (limited to 'clang/test/Lexer')
| -rw-r--r-- | clang/test/Lexer/char-literal-encoding-error.c | 13 | ||||
| -rw-r--r-- | clang/test/Lexer/string-literal-encoding.c | 3 |
2 files changed, 12 insertions, 4 deletions
diff --git a/clang/test/Lexer/char-literal-encoding-error.c b/clang/test/Lexer/char-literal-encoding-error.c index 833ffcaa251..e752de2920e 100644 --- a/clang/test/Lexer/char-literal-encoding-error.c +++ b/clang/test/Lexer/char-literal-encoding-error.c @@ -3,8 +3,13 @@ // This file is encoded using ISO-8859-1 int main() { - 'é'; // expected-error {{illegal character encoding in character literal}} - u'é'; // expected-error {{illegal character encoding in character literal}} - U'é'; // expected-error {{illegal character encoding in character literal}} - L'é'; // expected-error {{illegal character encoding in character literal}} + (void)'é'; // expected-warning {{illegal character encoding in character literal}} + (void)u'é'; // expected-error {{illegal character encoding in character literal}} + (void)U'é'; // expected-error {{illegal character encoding in character literal}} + (void)L'é'; // expected-error {{illegal character encoding in character literal}} + + // For narrow character literals, since there is no error, make sure the + // encoding is correct + static_assert((unsigned char)'é' == 0xE9, ""); // expected-warning {{illegal character encoding in character literal}} + static_assert('éé' == 0xE9E9, ""); // expected-warning {{illegal character encoding in character literal}} expected-warning {{multi-character character constant}} } diff --git a/clang/test/Lexer/string-literal-encoding.c b/clang/test/Lexer/string-literal-encoding.c index b12cfab156d..aa7cb73f626 100644 --- a/clang/test/Lexer/string-literal-encoding.c +++ b/clang/test/Lexer/string-literal-encoding.c @@ -12,4 +12,7 @@ void f() { wchar_t const *d = LR"(Àéîõü)"; // expected-error {{illegal character encoding in string literal}} char16_t const *e = uR"(Àéîõü)"; // expected-error {{illegal character encoding in string literal}} char32_t const *f = UR"(Àéîõü)"; // expected-error {{illegal character encoding in string literal}} + + char const *g = "Àéîõü"; // expected-warning {{illegal character encoding in string literal}} + char const *h = u8"Àéîõü"; // expected-error {{illegal character encoding in string literal}} } |

