This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libstdc++/61601] C++11 regex resource exhaustion


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61601

--- Comment #3 from Tim Shen <timshen at gcc dot gnu.org> ---
Author: timshen
Date: Tue Jul  1 03:05:45 2014
New Revision: 212185

URL: https://gcc.gnu.org/viewcvs?rev=212185&root=gcc&view=rev
Log:
    PR libstdc++/61061
    PR libstdc++/61582
    * include/bits/regex_automaton.h (_NFA<>::_M_insert_state): Add
    a NFA state limit. If it's exceeded, regex_constants::error_space
    will be throwed.
    * include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone): Use
    map (which is sparse) instead of vector. This reduce n times clones'
    cost from O(n^2) to O(n).
    * include/std/regex: Add map dependency.
    * testsuite/28_regex/algorithms/regex_match/ecma/char/61601.cc: New
    testcase.


Added:
   
trunk/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/61601.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/regex_automaton.h
    trunk/libstdc++-v3/include/bits/regex_automaton.tcc
    trunk/libstdc++-v3/include/std/regex


This is copied by hand, because PR 61601 is mistyped to 61601. Now it's fixed
in changelog.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]