[ https://issues.apache.org/jira/browse/STDCXX-542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12525135 ]
Farid Zaripov commented on STDCXX-542: -------------------------------------- The regression test added: http://svn.apache.org/viewvc?rev=572976&view=rev > message catalog assert/crash after opening multiple > --------------------------------------------------- > > Key: STDCXX-542 > URL: https://issues.apache.org/jira/browse/STDCXX-542 > Project: C++ Standard Library > Issue Type: Bug > Components: 22. Localization > Affects Versions: 4.1.2, 4.1.3, 4.1.4 > Environment: Windows > Reporter: Travis Vitek > Assignee: Farid Zaripov > Fix For: 4.2.1 > > > The below code asserts/crashes reliably on windows, but runs to completion on > at least one other platform. Note that I copied the rwstdmessages.dll from > the examples directory to simplify the testcase. > C:\build\stdcxx\build\msvc-8.0\15d\tests>type t.cpp > #include <iostream> > #include <locale> > #include <cassert> > // note same problem occurs even if catalog files are > // different. > #ifdef _WIN32 > # define CATALOG0 "rwstdmessages.dll" > # define CATALOG1 "rwstdmessages.dll" > #else > # define CATALOG0 "./rwstdmessages.cat" > # define CATALOG1 "./rwstdmessages.cat" > #endif > int main (int argc, char *argv[]) > { > typedef std::messages<char> messagesT; > const std::locale loc; > const messagesT& msgs = > std::use_facet<messagesT>(loc); > const messagesT::catalog cat0 = > msgs.open (CATALOG0, loc); > assert(! (cat0 < 0)); // ensure open succeeded > const messagesT::catalog cat1 = > msgs.open (CATALOG1, loc); > assert(! (cat1 < 0)); // ensure open succeeded > msgs.close (cat1); // crash/assert here > msgs.close (cat0); > return 0; > } > C:\build\stdcxx\build\msvc-8.0\15d\tests>t > C:\build\stdcxx\include\rw/_iterbase.h:436: class __rw::__rw_cat *&__thiscall > __rw::__rw_debug_iter<class std::vector<class __rw::__rw_cat *,class > std::allocator<class __rw::__rw_cat *> >,class __rw::__rw_cat * *,class > __rw::__rw_cat * *>::operator *(void) const: Assertion '_C_is_dereferenceable > ()' > failed. > This application has requested the Runtime to terminate it in an unusual way. > Please contact the application's support team for more information. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.