Opened 9 years ago
Closed 9 years ago
#8843 closed Bugs (fixed)
bugs: xpressive: assertion begin!=end fails, instead of throwing an exception
Reported by: | 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 (1)
Change History (4)
by , 9 years ago
comment:1 by , 9 years ago
Status: | new → assigned |
---|
Oh huh. Sounds like a bug. Thanks for the report. I'll look into it.
Note:
See TracTickets
for help on using tickets.
CppRuntimeErrorAssertionFailedXpressiveDetailDynamicParse_charset201 error