Subject: Re: [Boost-bugs] [Boost C++ Libraries] #3546: Regex: bizarre behaviour in basic_regex::do_assign with MSVC 2008
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-11-04 14:19:21
#3546: Regex: bizarre behaviour in basic_regex::do_assign with MSVC 2008
--------------------------------------------------+-------------------------
Reporter: Keith MacDonald <keith@â¦> | Owner: johnmaddock
Type: Bugs | Status: reopened
Milestone: Boost 1.41.0 | Component: regex
Version: Boost 1.40.0 | Severity: Showstopper
Resolution: | Keywords:
--------------------------------------------------+-------------------------
Changes (by Keith MacDonald <keith@â¦>):
* status: closed => reopened
* resolution: worksforme =>
Comment:
I couldn't get to the bottom of this problem, so went back to using
1.39.0, until I had more time to look into it. I've tried tried building
up from the basic code that was failing, but that always worked, so have
now approached it from the other end, by simplifying the application that
failed. I've cut it down to the attached skeleton (REBugTest.zip), but
still can't figure out why it's failing.
It works with 1.39.0, but only in debug mode with 1.40.0. In release
mode, it starts going wrong on line 52 of regex_search.hpp:
{{{]if(e.flags() & regex_constants::failbit)}}}
The evaluation of e.flags() branches off into the depths various of the
std libraries (eg. string or vector), depending on minor changes to the
sample code. Thus, the above code returns true or false, depending on
which bit of the std library was executed. If it returns false, an
exception is subsequently thrown at line 56 of perl_matcher_common.hpp
("Invalid regular expression object").
Note that both debug and release builds have all optimisations disabled,
so the only difference should be which boost library they automatically
link to.
To reproduce the problem, create and run the release build, type "abc" in
both the Find and Test edit controls, then press F3 (Edit/Test Find).
I'd really appreciate some help with this - even if it's to tell me I'm
doing something stupid!
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/3546#comment:2> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:01 UTC