[Bug libstdc++/40712] locale(const locale&, const char*, locale::category) can create broken locale

tsyvarev at ispras dot ru gcc-bugzilla@gcc.gnu.org
Mon Jul 13 11:55:00 GMT 2009

------- Comment #3 from tsyvarev at ispras dot ru  2009-07-13 11:55 -------
(In reply to comment #2)
> I think this constructor never ever worked correctly. The only solution I can
> see at the moment is consistently dynamically allocating _M_data->_M_grouping,
> and copying the characters of __nl_langinfo_l(__MON_GROUPING, __cloc) into it
> as part of _M_initialize_moneypunct.
Reasonable solution. Actually, I thougth that _M_initialize_moneypunct had
already implemented in such way.

As for "we didn't notice the issue much earlier" - it is strange, but in many
other cases locale, created with this constructor, behaves correctly(at least,
does not cause program to abort and remains internal properties). And this case
crashes program not on every system.



More information about the Gcc-bugs mailing list