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