// RUN: %clang %s -o %t && %run %t 2>&1 #include #include #include #include int main(int argc, char **argv) { mbstate_t state; memset(&state, 0, sizeof(state)); char buff[10]; size_t res = wcrtomb(buff, L'a', &state); assert(res == 1); assert(buff[0] == 'a'); res = wcrtomb(buff, L'\0', &state); assert(res == 1); assert(buff[0] == '\0'); res = wcrtomb(NULL, L'\0', &state); assert(res == 1); res = wcrtomb(buff, L'a', NULL); assert(res == 1); assert(buff[0] == 'a'); res = wcrtomb(buff, L'\0', NULL); assert(res == 1); assert(buff[0] == '\0'); res = wcrtomb(NULL, L'\0', NULL); assert(res == 1); return 0; }