1 | // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s |
2 | |
3 | void f() { |
4 | char a1[] = "a"; // No error. |
5 | char a2[] = u8"a"; // No error. |
6 | char a3[] = u"a"; // expected-error{{initializing char array with wide string literal}} |
7 | char a4[] = U"a"; // expected-error{{initializing char array with wide string literal}} |
8 | char a5[] = L"a"; // expected-error{{initializing char array with wide string literal}} |
9 | |
10 | wchar_t b1[] = "a"; // expected-error{{initializing wide char array with non-wide string literal}} |
11 | wchar_t b2[] = u8"a"; // expected-error{{initializing wide char array with non-wide string literal}} |
12 | wchar_t b3[] = u"a"; // expected-error{{initializing wide char array with incompatible wide string literal}} |
13 | wchar_t b4[] = U"a"; // expected-error{{initializing wide char array with incompatible wide string literal}} |
14 | wchar_t b5[] = L"a"; // No error. |
15 | |
16 | char16_t c1[] = "a"; // expected-error{{initializing wide char array with non-wide string literal}} |
17 | char16_t c2[] = u8"a"; // expected-error{{initializing wide char array with non-wide string literal}} |
18 | char16_t c3[] = u"a"; // No error. |
19 | char16_t c4[] = U"a"; // expected-error{{initializing wide char array with incompatible wide string literal}} |
20 | char16_t c5[] = L"a"; // expected-error{{initializing wide char array with incompatible wide string literal}} |
21 | |
22 | char32_t d1[] = "a"; // expected-error{{initializing wide char array with non-wide string literal}} |
23 | char32_t d2[] = u8"a"; // expected-error{{initializing wide char array with non-wide string literal}} |
24 | char32_t d3[] = u"a"; // expected-error{{initializing wide char array with incompatible wide string literal}} |
25 | char32_t d4[] = U"a"; // No error. |
26 | char32_t d5[] = L"a"; // expected-error{{initializing wide char array with incompatible wide string literal}} |
27 | |
28 | int e1[] = "a"; // expected-error{{array initializer must be an initializer list}} |
29 | int e2[] = u8"a"; // expected-error{{array initializer must be an initializer list}} |
30 | int e3[] = u"a"; // expected-error{{array initializer must be an initializer list}} |
31 | int e4[] = U"a"; // expected-error{{array initializer must be an initializer list}} |
32 | int e5[] = L"a"; // expected-error{{array initializer must be an initializer list}} |
33 | } |
34 | |
35 | void g() { |
36 | char a[] = 1; // expected-error{{array initializer must be an initializer list or string literal}} |
37 | wchar_t b[] = 1; // expected-error{{array initializer must be an initializer list or wide string literal}} |
38 | char16_t c[] = 1; // expected-error{{array initializer must be an initializer list or wide string literal}} |
39 | char32_t d[] = 1; // expected-error{{array initializer must be an initializer list or wide string literal}} |
40 | } |
41 | |