diff options
Diffstat (limited to 'libcxx/src/support/win32/locale_win32.cpp')
| -rw-r--r-- | libcxx/src/support/win32/locale_win32.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libcxx/src/support/win32/locale_win32.cpp b/libcxx/src/support/win32/locale_win32.cpp index a64788685c2..b7062db352a 100644 --- a/libcxx/src/support/win32/locale_win32.cpp +++ b/libcxx/src/support/win32/locale_win32.cpp @@ -32,11 +32,13 @@ decltype(MB_CUR_MAX) MB_CUR_MAX_L( locale_t __l ) #endif } - -lconv *localeconv_l( locale_t loc ) +lconv *localeconv_l( locale_t &loc ) { __libcpp_locale_guard __current(loc); - return localeconv(); + lconv *lc = localeconv(); + if (!lc) + return lc; + return loc.__store_lconv(lc); } size_t mbrlen_l( const char *__restrict s, size_t n, mbstate_t *__restrict ps, locale_t loc ) |

