10ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
20ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg
30ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborgvoid f() {
40ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char a1[] = "a"; // No error.
50ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char a2[] = u8"a"; // No error.
60ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char a3[] = u"a"; // expected-error{{initializing char array with wide string literal}}
70ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char a4[] = U"a"; // expected-error{{initializing char array with wide string literal}}
80ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char a5[] = L"a"; // expected-error{{initializing char array with wide string literal}}
90ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg
100ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  wchar_t b1[] = "a"; // expected-error{{initializing wide char array with non-wide string literal}}
110ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  wchar_t b2[] = u8"a"; // expected-error{{initializing wide char array with non-wide string literal}}
120ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  wchar_t b3[] = u"a"; // expected-error{{initializing wide char array with incompatible wide string literal}}
130ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  wchar_t b4[] = U"a"; // expected-error{{initializing wide char array with incompatible wide string literal}}
140ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  wchar_t b5[] = L"a"; // No error.
150ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg
160ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char16_t c1[] = "a"; // expected-error{{initializing wide char array with non-wide string literal}}
170ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char16_t c2[] = u8"a"; // expected-error{{initializing wide char array with non-wide string literal}}
180ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char16_t c3[] = u"a"; // No error.
190ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char16_t c4[] = U"a"; // expected-error{{initializing wide char array with incompatible wide string literal}}
200ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char16_t c5[] = L"a"; // expected-error{{initializing wide char array with incompatible wide string literal}}
210ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg
220ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char32_t d1[] = "a"; // expected-error{{initializing wide char array with non-wide string literal}}
230ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char32_t d2[] = u8"a"; // expected-error{{initializing wide char array with non-wide string literal}}
240ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char32_t d3[] = u"a"; // expected-error{{initializing wide char array with incompatible wide string literal}}
250ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char32_t d4[] = U"a"; // No error.
260ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char32_t d5[] = L"a"; // expected-error{{initializing wide char array with incompatible wide string literal}}
270ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg
280ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  int e1[] = "a"; // expected-error{{array initializer must be an initializer list}}
290ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  int e2[] = u8"a"; // expected-error{{array initializer must be an initializer list}}
300ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  int e3[] = u"a"; // expected-error{{array initializer must be an initializer list}}
310ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  int e4[] = U"a"; // expected-error{{array initializer must be an initializer list}}
320ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  int e5[] = L"a"; // expected-error{{array initializer must be an initializer list}}
330ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg}
340ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg
350ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborgvoid g() {
360ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char a[] = 1; // expected-error{{array initializer must be an initializer list or string literal}}
370ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  wchar_t b[] = 1; // expected-error{{array initializer must be an initializer list or wide string literal}}
380ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char16_t c[] = 1; // expected-error{{array initializer must be an initializer list or wide string literal}}
390ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char32_t d[] = 1; // expected-error{{array initializer must be an initializer list or wide string literal}}
400ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg}
41