Modify

Ticket #8843 (closed Bugs: fixed)

Opened 9 months ago

Last modified 8 months ago

bugs: xpressive: assertion begin!=end fails, instead of throwing an exception

Reported by: richelbilderbeek@… Owned by: eric_niebler
Milestone: To Be Determined Component: xpressive
Version: Boost 1.54.0 Severity: Problem
Keywords: xpressive debug release Cc:

Description

When a defect string ("\d{4} [") is compiled to be a sregex, then an assertion fails, instead of an exception being thrown. This is only in debug mode: in release mode, an exception is thrown as expected.

The full error message:

Assertion failed!

Program: myfolder/myexe.exe
File: myfolder/boost_1_54_0/boost/xpressive/detail/dynamic/parse_charset.hpp, Line 201

Expression: begin != end

The full code:

#include <iostream>

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#include <boost/xpressive/xpressive.hpp>
#pragma GCC diagnostic pop

int main()
{
  try
  {
    boost::xpressive::sregex::compile("\\d{4} [");
  }
  catch (boost::xpressive::regex_error& e)
  {
    std::cout << "OK\n";
    return 0;
  }
  return 1;
}

The Qt Creator project file:

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -Werror

INCLUDEPATH += \
  ../../Libraries/boost_1_54_0

CONFIG(release, debug|release) {
  DEFINES += NDEBUG
}

Technicalities:

  • Operating system: Windows Windows XP
  • IDE: Qt Creator 2.7.2
  • Project type: Console application
  • C++ standard: C++11
  • Compiler(s): G++ 4.8.0
  • Library used: Boost: version 1.54.0

The full Qt Creator project is added to this ticket.

Thanks for Boost.Xpressive!

Richel Bilderbeek

Attachments

CppRuntimeErrorAssertionFailedXpressiveDetailDynamicParse_charset201.zip Download (3.5 KB) - added by richelbilderbeek@… 9 months ago.
CppRuntimeErrorAssertionFailedXpressiveDetailDynamicParse_charset201 error

Change History

Changed 9 months ago by richelbilderbeek@…

CppRuntimeErrorAssertionFailedXpressiveDetailDynamicParse_charset201 error

comment:1 Changed 9 months ago by eric_niebler

  • Status changed from new to assigned

Oh huh. Sounds like a bug. Thanks for the report. I'll look into it.

comment:2 Changed 9 months ago by eric_niebler

(In [85118]) throw instead of assert at incomplete charset, refs #8843

comment:3 Changed 8 months ago by eric_niebler

  • Status changed from assigned to closed
  • Resolution set to fixed

(In [85427]) merge [85118],[85119],[85120],[85121] from trunk; fixes #8843, fixes #8880, fixes #8882, fixes #8474

View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.