diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-03-08 21:59:28 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-03-08 21:59:28 +0000 |
commit | 49d517467c3dcd2c67e8a6c740ba5160e37625f7 (patch) | |
tree | a41241684cb33d87947bea6ae6a0c7caf07a8933 /test/Lexer/string-literal-encoding.c | |
parent | 188158db29f50443b6e412f2a40c800b2669c957 (diff) |
When checking the encoding of an 8-bit string literal, don't just check the
first codepoint! Also, don't reject empty raw string literals for spurious
"encoding" issues. Also, don't rely on undefined behavior in ConvertUTF.c.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152344 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Lexer/string-literal-encoding.c')
-rw-r--r-- | test/Lexer/string-literal-encoding.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/Lexer/string-literal-encoding.c b/test/Lexer/string-literal-encoding.c index aa7cb73f62..57097dca88 100644 --- a/test/Lexer/string-literal-encoding.c +++ b/test/Lexer/string-literal-encoding.c @@ -15,4 +15,19 @@ void f() { char const *g = "Àéîõü"; // expected-warning {{illegal character encoding in string literal}} char const *h = u8"Àéîõü"; // expected-error {{illegal character encoding in string literal}} + char const *i = R"(Àéîõü)"; // expected-warning {{illegal character encoding in string literal}} +} + +void g() { + wchar_t const *a = L"foo Àéîõü"; // expected-error {{illegal character encoding in string literal}} + + char16_t const *b = u"foo Àéîõü"; // expected-error {{illegal character encoding in string literal}} + char32_t const *c = U"foo Àéîõü"; // expected-error {{illegal character encoding in string literal}} + wchar_t const *d = LR"(foo Àéîõü)"; // expected-error {{illegal character encoding in string literal}} + char16_t const *e = uR"(foo Àéîõü)"; // expected-error {{illegal character encoding in string literal}} + char32_t const *f = UR"(foo Àéîõü)"; // expected-error {{illegal character encoding in string literal}} + + char const *g = "foo Àéîõü"; // expected-warning {{illegal character encoding in string literal}} + char const *h = u8"foo Àéîõü"; // expected-error {{illegal character encoding in string literal}} + char const *i = R"(foo Àéîõü)"; // expected-warning {{illegal character encoding in string literal}} } |