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++/64680] New: basic_regex::operator= does not reset flags


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

            Bug ID: 64680
           Summary: basic_regex::operator= does not reset flags
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kariya_mitsuru at hotmail dot com

Created attachment 34491
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34491&action=edit
g++ -v

The sample code below should not throw a regex_error.

========================= sample code =========================
#include <regex>

int main()
{
    std::regex re("[[:alnum:]]", std::regex_constants::basic);
    re = "\\w+";
}
===============================================================
cf. http://melpon.org/wandbox/permlink/lrD2Ia4urIPVgakK


According to the C++11 standard 28.8.3[re.regex.assign], operator=(const charT*
ptr) is equivalent to assign(ptr), and assign(ptr) calls assign(const char*
ptr, flag_type f = regex_constants::ECMAScript).

Since "\\w+" is a valid ECMAScript syntax, the sample code above should end
normally.


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