1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 %s -fsyntax-only -verify
2651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 %s -fsyntax-only -fshort-wchar -verify -DSHORT_WCHAR
3947e00db0767596711f8571a5d276269043a2331Benjamin Kramer
4947e00db0767596711f8571a5d276269043a2331Benjamin Kramertypedef __WCHAR_TYPE__ wchar_t;
5947e00db0767596711f8571a5d276269043a2331Benjamin Kramer
6a6fda124bf380479529d6a80b84b62cacd3cb707John Thompson#if defined(_WIN32) || defined(_M_IX86) || defined(__CYGWIN__) \
7a6fda124bf380479529d6a80b84b62cacd3cb707John Thompson || defined(_M_X64) || defined(SHORT_WCHAR)
8a6fda124bf380479529d6a80b84b62cacd3cb707John Thompson  #define WCHAR_T_TYPE unsigned short
95024bf501a03bc9423476cb976bc4029dd9a56f5Tim Northover#elif defined(__arm) || defined(__aarch64__)
104c6d6dc793b95c1712333d8393c98ba15c7bdd97Hans Wennborg  #define WCHAR_T_TYPE unsigned int
1111ac3f54a87b57ce74060c2cef833b4fab5ccd9eEdward O'Callaghan#elif defined(__sun) || defined(__AuroraUX__)
1211ac3f54a87b57ce74060c2cef833b4fab5ccd9eEdward O'Callaghan  #define WCHAR_T_TYPE long
1311ac3f54a87b57ce74060c2cef833b4fab5ccd9eEdward O'Callaghan#else /* Solaris or AuroraUX. */
14a6fda124bf380479529d6a80b84b62cacd3cb707John Thompson  #define WCHAR_T_TYPE int
15a6fda124bf380479529d6a80b84b62cacd3cb707John Thompson#endif
16a6fda124bf380479529d6a80b84b62cacd3cb707John Thompson
1719753cfa6059b237880a91f21ef58f2d8984845fChris Lattnerint check_wchar_size[sizeof(*L"") == sizeof(wchar_t) ? 1 : -1];
18a6fda124bf380479529d6a80b84b62cacd3cb707John Thompson
1919753cfa6059b237880a91f21ef58f2d8984845fChris Lattnervoid foo() {
20a6fda124bf380479529d6a80b84b62cacd3cb707John Thompson  WCHAR_T_TYPE t1[] = L"x";
2119753cfa6059b237880a91f21ef58f2d8984845fChris Lattner  wchar_t tab[] = L"x";
220ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  WCHAR_T_TYPE t2[] = "x";     // expected-error {{initializing wide char array with non-wide string literal}}
230ff5074f37a66bca244a9d5d0da050ff68693ce2Hans Wennborg  char t3[] = L"x";   // expected-error {{initializing char array with wide string literal}}
2419753cfa6059b237880a91f21ef58f2d8984845fChris Lattner}
25