------- Comment #4 from tsyvarev at ispras dot ru 2008-12-02 13:04 ------- According to the code, locale constructor calls
void locale::_Impl::_M_replace_categories(const _Impl* __imp, category __cat) which already processes names of locales. This function works correctly, when both locales (*this and __impl) have names, or when *this locale hasn't name. But when *this locale has name, but __imp hasn't, the function doesn't clear name of *this. Your patch fixes the problem at the level of the locale constructor, but why do not fix this problem at the level of _M_replace_categories() instead? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38365