Opened 5 years ago

Last modified 5 years ago

#13081 new Bugs

Xpressive crashes in release if auto keyword used.

Reported by: Evgeny Yashin <johny5.coder@…> Owned by: Eric Niebler
Milestone: To Be Determined Component: xpressive
Version: Boost 1.62.0 Severity: Problem
Keywords: Cc:

Description

This code.

#include "boost/xpressive/xpressive.hpp"

int main() {

using namespace boost::xpressive;

auto scheme = (s1 = +_w) >> ":"; auto host_ipv6 = (s2 = ('[' >> +(xdigit | ':') >> ']')); cregex uri_re = scheme >> host_ipv6;

cmatch m; if( regex_match( "http://[fe::]", m, uri_re ) ) {

[first, last) pair of iterators, with implicit operator string() std::string protocol = m[1]; protocol = protocol;

}

return 0;

}

Crashes with access violation to random address. Visual Studio 2015 RELEASE builds only (for both 32/64 bit builds).

Change History (1)

comment:1 by Evgeny Yashin <johny5.coder@…>, 5 years ago

This code.

#include "boost/xpressive/xpressive.hpp"

int main()
{
	using namespace boost::xpressive;

	auto scheme = (s1 = +_w) >> "://";
	auto host_ipv6 = (s2 = ('[' >> +(xdigit | ':') >> ']'));
	cregex uri_re = scheme >> host_ipv6;

	cmatch m;
	if( regex_match( "http://[fe::]", m, uri_re ) )
	{
		std::string protocol = m[1];
		protocol = protocol;
	}

    return 0;
}

Crashes with access violation to random address. Visual Studio 2015 RELEASE builds only (for both 32/64 bit builds).

Note: See TracTickets for help on using tickets.