Boost C++ Libraries: Ticket #7143: xpressive: run time assertion when compiled with clang 3.1 and -std=c++0x https://svn.boost.org/trac10/ticket/7143 <p> Example code fails at run time with an assertion failure when compiled with -std=c++0x and not when compiled without -std=c++0x. System Ubuntu 10.04 64 bit, compiler Clang 3.1, -std=c++0x also uses libc++. </p> <p> boost_1_50_0/boost/xpressive/traits/cpp_regex_traits.hpp:273: void boost::xpressive::detail::cpp_regex_traits_base&lt;char, 1&gt;::imbue(const std::locale &amp;) [Char = char, <a class="missing wiki">SizeOfChar</a> = 1]: Assertion `0 == (this-&gt;masks_[i] &amp; non_std_ctype_masks)' failed. </p> <p> Example code attached. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/7143 Trac 1.4.3 anonymous Tue, 17 Jul 2012 20:30:24 GMT attachment set https://svn.boost.org/trac10/ticket/7143 https://svn.boost.org/trac10/ticket/7143 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">map_example2.cpp</span> </li> </ul> Ticket Eric Niebler Wed, 18 Jul 2012 17:41:14 GMT keywords, component, summary changed https://svn.boost.org/trac10/ticket/7143#comment:1 https://svn.boost.org/trac10/ticket/7143#comment:1 <ul> <li><strong>keywords</strong> xpressive added; Proto removed </li> <li><strong>component</strong> <span class="trac-field-old">proto</span> → <span class="trac-field-new">xpressive</span> </li> <li><strong>summary</strong> <span class="trac-field-old">proto: run time assertion when compiled with clang 3.1 and -std=c++0x</span> → <span class="trac-field-new">xpressive: run time assertion when compiled with clang 3.1 and -std=c++0x</span> </li> </ul> Ticket Eric Niebler Wed, 18 Jul 2012 20:15:42 GMT status changed https://svn.boost.org/trac10/ticket/7143#comment:2 https://svn.boost.org/trac10/ticket/7143#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">assigned</span> </li> </ul> <p> I think <a class="changeset" href="https://svn.boost.org/trac10/changeset/79589" title="simpler, more std-compliant implementation of cpp_regex_traits, refers ...">[79589]</a> on trunk corrects this. I have been unable to get clang/libc++ working, so I can't test this. Can you give it a shot, please? </p> Ticket Eric Niebler Fri, 20 Jul 2012 05:51:56 GMT <link>https://svn.boost.org/trac10/ticket/7143#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7143#comment:3</guid> <description> <p> My change on trunk broke many platforms so I reverted it. I'll need your help to fix this. Can you set a breakpoint at the point where the code asserts and tell me what the value of <code>(this-&gt;masks_[i] &amp; non_std_ctype_masks)</code> is? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Eric Niebler</dc:creator> <pubDate>Wed, 25 Jul 2012 00:30:49 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7143#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7143#comment:4</guid> <description> <p> Thanks for your help thus far, John. The bug in cpp_regex_traits is fixed in trunk as of <a class="changeset" href="https://svn.boost.org/trac10/changeset/79732" title="fix assertion in cpp_regex_traits on libc++, thanks to John Fletcher">[79732]</a>. For your efforts, you got a mention in xpressive's Acknowledgements section. </p> <p> Leaving this open until the fix is merged to release. Also, I suspect there is another bug lurking in the c_regex_traits, which you can confirm if you get xpressive's test suite to run successfully. If so, you can report it here. No need to open another issue. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Eric Niebler</dc:creator> <pubDate>Mon, 03 Sep 2012 01:19:41 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/7143#comment:5 https://svn.boost.org/trac10/ticket/7143#comment:5 <ul> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> Ticket