https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70493

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |WONTFIX

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Libstdc++ has no idea why the locale name was invalid. When you use the empty
string "" it constructs a locale name from the environment and then calls
newlocale from the C library. newlocale returns (locale_t)0 and sets ENOENT,
which according to POSIX means "For any of the categories in category_mask, the
locale data is not available" (or for the GNU C library, "locale is not a
string pointer referring to a valid locale").

Unless libstdc++ is going to iteratively try creating a locale from each of the
LC_* environment variables to see which one failed, it can't really give you
any better information. That doesn't seem worth the effort (and increase in
code size), sorry.

Reply via email to