1 // RUN: %clang %s -o %t && %run %t 2>&1
2
3 #include <assert.h>
4 #include <stdlib.h>
5 #include <string.h>
6 #include <wchar.h>
7
main(int argc,char ** argv)8 int main(int argc, char **argv) {
9 mbstate_t state;
10 memset(&state, 0, sizeof(state));
11
12 char buff[10];
13 size_t res = wcrtomb(buff, L'a', &state);
14 assert(res == 1);
15 assert(buff[0] == 'a');
16
17 res = wcrtomb(buff, L'\0', &state);
18 assert(res == 1);
19 assert(buff[0] == '\0');
20
21 res = wcrtomb(NULL, L'\0', &state);
22 assert(res == 1);
23
24 res = wcrtomb(buff, L'a', NULL);
25 assert(res == 1);
26 assert(buff[0] == 'a');
27
28 res = wcrtomb(buff, L'\0', NULL);
29 assert(res == 1);
30 assert(buff[0] == '\0');
31
32 res = wcrtomb(NULL, L'\0', NULL);
33 assert(res == 1);
34
35 return 0;
36 }
37