@@ -37,18 +37,18 @@ TEST_F(LlvmLibcMBRToWCTest, TwoByte) {
3737 const char ch[2 ] = {static_cast <char >(0xC2 ),
3838 static_cast <char >(0x8E )}; // car symbol
3939 wchar_t dest[2 ];
40- mbstate_t * mb;
40+ mbstate_t mb;
4141 LIBC_NAMESPACE::memset (&mb, 0 , sizeof (mbstate_t ));
42- size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 2 , mb);
42+ size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 2 , & mb);
4343 ASSERT_EQ (static_cast <int >(*dest), 142 );
4444 ASSERT_EQ (static_cast <int >(n), 2 );
4545 ASSERT_ERRNO_SUCCESS ();
4646
4747 // Should fail since we have not read enough
48- n = LIBC_NAMESPACE::mbrtowc (dest, ch, 1 , mb);
48+ n = LIBC_NAMESPACE::mbrtowc (dest, ch, 1 , & mb);
4949 ASSERT_EQ (static_cast <int >(n), -2 );
5050 // Should pass after reading one more byte
51- n = LIBC_NAMESPACE::mbrtowc (dest, ch + 1 , 1 , mb);
51+ n = LIBC_NAMESPACE::mbrtowc (dest, ch + 1 , 1 , & mb);
5252 ASSERT_EQ (static_cast <int >(n), 1 );
5353 ASSERT_EQ (static_cast <int >(*dest), 142 );
5454 ASSERT_ERRNO_SUCCESS ();
@@ -58,19 +58,19 @@ TEST_F(LlvmLibcMBRToWCTest, ThreeByte) {
5858 const char ch[3 ] = {static_cast <char >(0xE2 ), static_cast <char >(0x88 ),
5959 static_cast <char >(0x91 )}; // ∑ sigma symbol
6060 wchar_t dest[2 ];
61- mbstate_t * mb;
61+ mbstate_t mb;
6262 LIBC_NAMESPACE::memset (&mb, 0 , sizeof (mbstate_t ));
63- size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 3 , mb);
63+ size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 3 , & mb);
6464 ASSERT_EQ (static_cast <int >(*dest), 8721 );
6565 ASSERT_EQ (static_cast <int >(n), 3 );
6666 ASSERT_ERRNO_SUCCESS ();
6767
6868 // Should fail since we have not read enough
69- n = LIBC_NAMESPACE::mbrtowc (dest, ch, 1 , mb);
69+ n = LIBC_NAMESPACE::mbrtowc (dest, ch, 1 , & mb);
7070 ASSERT_EQ (static_cast <int >(n), -2 );
7171 ASSERT_ERRNO_SUCCESS ();
7272 // Should pass after reading two more bytes
73- n = LIBC_NAMESPACE::mbrtowc (dest, ch + 1 , 2 , mb);
73+ n = LIBC_NAMESPACE::mbrtowc (dest, ch + 1 , 2 , & mb);
7474 ASSERT_EQ (static_cast <int >(n), 2 );
7575 ASSERT_EQ (static_cast <int >(*dest), 8721 );
7676 ASSERT_ERRNO_SUCCESS ();
@@ -81,18 +81,18 @@ TEST_F(LlvmLibcMBRToWCTest, FourByte) {
8181 static_cast <char >(0xA4 ),
8282 static_cast <char >(0xA1 )}; // 🤡 clown emoji
8383 wchar_t dest[2 ];
84- mbstate_t * mb;
84+ mbstate_t mb;
8585 LIBC_NAMESPACE::memset (&mb, 0 , sizeof (mbstate_t ));
86- size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 4 , mb);
86+ size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 4 , & mb);
8787 ASSERT_EQ (static_cast <int >(*dest), 129313 );
8888 ASSERT_EQ (static_cast <int >(n), 4 );
8989 ASSERT_ERRNO_SUCCESS ();
9090 // Should fail since we have not read enough
91- n = LIBC_NAMESPACE::mbrtowc (dest, ch, 2 , mb);
91+ n = LIBC_NAMESPACE::mbrtowc (dest, ch, 2 , & mb);
9292 ASSERT_EQ (static_cast <int >(n), -2 );
9393 ASSERT_ERRNO_SUCCESS ();
9494 // Should pass after reading two more bytes
95- n = LIBC_NAMESPACE::mbrtowc (dest, ch + 2 , 2 , mb);
95+ n = LIBC_NAMESPACE::mbrtowc (dest, ch + 2 , 2 , & mb);
9696 ASSERT_EQ (static_cast <int >(n), 2 );
9797 ASSERT_EQ (static_cast <int >(*dest), 129313 );
9898 ASSERT_ERRNO_SUCCESS ();
@@ -101,9 +101,9 @@ TEST_F(LlvmLibcMBRToWCTest, FourByte) {
101101TEST_F (LlvmLibcMBRToWCTest, InvalidByte) {
102102 const char ch[1 ] = {static_cast <char >(0x80 )};
103103 wchar_t dest[2 ];
104- mbstate_t * mb;
104+ mbstate_t mb;
105105 LIBC_NAMESPACE::memset (&mb, 0 , sizeof (mbstate_t ));
106- size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 1 , mb);
106+ size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 1 , & mb);
107107 ASSERT_EQ (static_cast <int >(n), -1 );
108108 ASSERT_ERRNO_EQ (EILSEQ);
109109}
@@ -113,18 +113,18 @@ TEST_F(LlvmLibcMBRToWCTest, InvalidMultiByte) {
113113 static_cast <char >(0x80 ),
114114 static_cast <char >(0x00 )}; // invalid sequence of bytes
115115 wchar_t dest[2 ];
116- mbstate_t * mb;
116+ mbstate_t mb;
117117 LIBC_NAMESPACE::memset (&mb, 0 , sizeof (mbstate_t ));
118118 // Trying to push all 4 should error
119- size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 4 , mb);
119+ size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 4 , & mb);
120120 ASSERT_EQ (static_cast <int >(n), -1 );
121121 ASSERT_ERRNO_EQ (EILSEQ);
122122 // Trying to push just the first one should error
123- n = LIBC_NAMESPACE::mbrtowc (dest, ch, 1 , mb);
123+ n = LIBC_NAMESPACE::mbrtowc (dest, ch, 1 , & mb);
124124 ASSERT_EQ (static_cast <int >(n), -1 );
125125 ASSERT_ERRNO_EQ (EILSEQ);
126126 // Trying to push the second and third should correspond to null wc
127- n = LIBC_NAMESPACE::mbrtowc (dest, ch + 1 , 2 , mb);
127+ n = LIBC_NAMESPACE::mbrtowc (dest, ch + 1 , 2 , & mb);
128128 ASSERT_EQ (static_cast <int >(n), 0 );
129129 ASSERT_TRUE (*dest == L' \0 ' );
130130 ASSERT_ERRNO_SUCCESS ();
@@ -136,10 +136,10 @@ TEST_F(LlvmLibcMBRToWCTest, InvalidLastByte) {
136136 const char ch[4 ] = {static_cast <char >(0xF1 ), static_cast <char >(0x80 ),
137137 static_cast <char >(0x80 ), static_cast <char >(0xC0 )};
138138 wchar_t dest[2 ];
139- mbstate_t * mb;
139+ mbstate_t mb;
140140 LIBC_NAMESPACE::memset (&mb, 0 , sizeof (mbstate_t ));
141141 // Trying to push all 4 should error
142- size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 4 , mb);
142+ size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 4 , & mb);
143143 ASSERT_EQ (static_cast <int >(n), -1 );
144144 ASSERT_ERRNO_EQ (EILSEQ);
145145}
@@ -148,10 +148,10 @@ TEST_F(LlvmLibcMBRToWCTest, ValidTwoByteWithExtraRead) {
148148 const char ch[3 ] = {static_cast <char >(0xC2 ), static_cast <char >(0x8E ),
149149 static_cast <char >(0x80 )};
150150 wchar_t dest[2 ];
151- mbstate_t * mb;
151+ mbstate_t mb;
152152 LIBC_NAMESPACE::memset (&mb, 0 , sizeof (mbstate_t ));
153153 // Trying to push all 3 should return valid 2 byte
154- size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 3 , mb);
154+ size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 3 , & mb);
155155 ASSERT_EQ (static_cast <int >(n), 2 );
156156 ASSERT_EQ (static_cast <int >(*dest), 142 );
157157 ASSERT_ERRNO_SUCCESS ();
@@ -161,31 +161,31 @@ TEST_F(LlvmLibcMBRToWCTest, TwoValidTwoBytes) {
161161 const char ch[4 ] = {static_cast <char >(0xC2 ), static_cast <char >(0x8E ),
162162 static_cast <char >(0xC7 ), static_cast <char >(0x8C )};
163163 wchar_t dest[2 ];
164- mbstate_t * mb;
164+ mbstate_t mb;
165165 LIBC_NAMESPACE::memset (&mb, 0 , sizeof (mbstate_t ));
166166 // mbstate should reset after reading first one
167- size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 2 , mb);
167+ size_t n = LIBC_NAMESPACE::mbrtowc (dest, ch, 2 , & mb);
168168 ASSERT_EQ (static_cast <int >(n), 2 );
169169 ASSERT_EQ (static_cast <int >(*dest), 142 );
170170 ASSERT_ERRNO_SUCCESS ();
171- n = LIBC_NAMESPACE::mbrtowc (dest + 1 , ch + 2 , 2 , mb);
171+ n = LIBC_NAMESPACE::mbrtowc (dest + 1 , ch + 2 , 2 , & mb);
172172 ASSERT_EQ (static_cast <int >(n), 2 );
173173 ASSERT_EQ (static_cast <int >(*(dest + 1 )), 460 );
174174 ASSERT_ERRNO_SUCCESS ();
175175}
176176
177177TEST_F (LlvmLibcMBRToWCTest, NullString) {
178178 wchar_t dest[2 ] = {L' O' , L' K' };
179- mbstate_t * mb;
179+ mbstate_t mb;
180180 LIBC_NAMESPACE::memset (&mb, 0 , sizeof (mbstate_t ));
181181 // reading on nullptr should return 0
182- size_t n = LIBC_NAMESPACE::mbrtowc (dest, nullptr , 2 , mb);
182+ size_t n = LIBC_NAMESPACE::mbrtowc (dest, nullptr , 2 , & mb);
183183 ASSERT_EQ (static_cast <int >(n), 0 );
184184 ASSERT_TRUE (dest[0 ] == L' O' );
185185 ASSERT_ERRNO_SUCCESS ();
186186 // reading a null terminator should return 0
187187 const char *ch = " \0 " ;
188- n = LIBC_NAMESPACE::mbrtowc (dest, ch, 1 , mb);
188+ n = LIBC_NAMESPACE::mbrtowc (dest, ch, 1 , & mb);
189189 ASSERT_EQ (static_cast <int >(n), 0 );
190190 ASSERT_ERRNO_SUCCESS ();
191191}
@@ -194,10 +194,10 @@ TEST_F(LlvmLibcMBRToWCTest, NullDest) {
194194 const char ch[4 ] = {static_cast <char >(0xF0 ), static_cast <char >(0x9F ),
195195 static_cast <char >(0xA4 ),
196196 static_cast <char >(0xA1 )}; // 🤡 clown emoji
197- mbstate_t * mb;
197+ mbstate_t mb;
198198 LIBC_NAMESPACE::memset (&mb, 0 , sizeof (mbstate_t ));
199199 // reading nullptr should return correct size
200- size_t n = LIBC_NAMESPACE::mbrtowc (nullptr , ch, 10 , mb);
200+ size_t n = LIBC_NAMESPACE::mbrtowc (nullptr , ch, 10 , & mb);
201201 ASSERT_EQ (static_cast <int >(n), 4 );
202202 ASSERT_ERRNO_SUCCESS ();
203203}
0 commit comments