[regex] Need some help with msvc-11/12

Can anyone with access to msvc-11 or 12 tell me what's causing this failure: http://www.boost.org/development/tests/develop/developer/output/DrWeb_vc12_x... You will probably need to build and run under the debugger to find out I suspect... Many thanks in advance, John.

On 1/21/2014 1:56 PM, John Maddock wrote:
Can anyone with access to msvc-11 or 12 tell me what's causing this failure: http://www.boost.org/development/tests/develop/developer/output/DrWeb_vc12_x...
You will probably need to build and run under the debugger to find out I suspect...
I attempted to run the test but it never ended. One of the tests that build and then runs some executable evidently kept running without stopping.

Edward Diener <eldiener <at> tropicsoft.com> writes:
I attempted to run the test but it never ended. One of the tests that build and then runs some executable evidently kept running without stopping.
The test that runs forever is test_en_locale("en", 0x09). It hangs in cpp_regex_traits_implementation<wchar_t>::transform(const wchar_t* p1, const wchar_t* p2) in cpp_regex_traits.hpp, line 602f. "result" is a std::wstring consisting of 2142083952 L"\0"'s. p1 is 0x000000000020b7c4 L"" and p2 is 0x000000000020b7c6 L"". The problem only occurs in the 64-bit build, the 32-bit build runs fine.

This seems to be a bug in VC12's std::collate::do_transform. If _Wcsxfrm returns INT_MAX to indicate that the call to __crtLCMapStringW failed, the string gets resized to INT_MAX elements. I will report this on Microsoft Connect. The hang doesn't occur if you don't call transform for empty strings.

This seems to be a bug in VC12's std::collate::do_transform. If _Wcsxfrm returns INT_MAX to indicate that the call to __crtLCMapStringW failed, the string gets resized to INT_MAX elements. I will report this on Microsoft Connect. The hang doesn't occur if you don't call transform for empty strings.
OK thanks, I'll see if I can figure out why it's getting an empty string, and try to patch/workaround that. Many thanks for investigating that, much appreciated, John.
participants (3)
-
Edward Diener
-
John Maddock
-
Marcel Raad