aboutsummaryrefslogtreecommitdiff
path: root/test/Lexer/string-literal-encoding.c
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-03-08 21:59:28 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-03-08 21:59:28 +0000
commit49d517467c3dcd2c67e8a6c740ba5160e37625f7 (patch)
treea41241684cb33d87947bea6ae6a0c7caf07a8933 /test/Lexer/string-literal-encoding.c
parent188158db29f50443b6e412f2a40c800b2669c957 (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.c15
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}}
}