Re: [Boost-bugs] [Boost C++ Libraries] #3546: Regex: bizarre behaviour in basic_regex::do_assign with MSVC 2008

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