xref: /aosp_15_r20/external/clang/test/SemaCXX/wchar_t.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -pedantic -verify %s
2*67e74705SXin Li wchar_t x;
3*67e74705SXin Li 
f(wchar_t p)4*67e74705SXin Li void f(wchar_t p) {
5*67e74705SXin Li   wchar_t x;
6*67e74705SXin Li   unsigned wchar_t y; // expected-warning {{'wchar_t' cannot be signed or unsigned}}
7*67e74705SXin Li   signed wchar_t z; // expected-warning {{'wchar_t' cannot be signed or unsigned}}
8*67e74705SXin Li   ++x;
9*67e74705SXin Li }
10*67e74705SXin Li 
11*67e74705SXin Li // PR4502
12*67e74705SXin Li wchar_t const c = L'c';
13*67e74705SXin Li int a[c == L'c' ? 1 : -1];
14*67e74705SXin Li 
15*67e74705SXin Li 
16*67e74705SXin Li // PR5917
17*67e74705SXin Li template<typename _CharT>
18*67e74705SXin Li struct basic_string {
19*67e74705SXin Li };
20*67e74705SXin Li 
21*67e74705SXin Li template<typename _CharT>
22*67e74705SXin Li basic_string<_CharT> operator+ (const basic_string<_CharT>&, _CharT);
23*67e74705SXin Li 
t(void)24*67e74705SXin Li int t(void) {
25*67e74705SXin Li   basic_string<wchar_t>() + L'-';
26*67e74705SXin Li   return (0);
27*67e74705SXin Li }
28*67e74705SXin Li 
29*67e74705SXin Li 
30*67e74705SXin Li // rdar://8040728
31*67e74705SXin Li wchar_t in[] = L"\x434" "\x434";  // No warning
32*67e74705SXin Li 
33