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

            Bug ID: 112680
           Summary: g++-13 segfault on std::regex_match with c++11 or
                    above -O2 and lto
           Product: gcc
           Version: 13.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: costamagnagianfranco at yahoo dot it
  Target Milestone: ---

Created attachment 56672
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56672&action=edit
reproduce test case

This used to work with g++-10 and started to fail with g++-11 g++-12 and g++-13
sh runme.sh 
Segmentation fault (core dumped)


g++-12 main.cpp -std=c++11 -O2 -flto=auto -o main && ./main

The main is really simple, load two strings, and call regex function

#include <fstream>
#include <sstream>
#include <iostream>
#include <regex>
int main()
{
std::ifstream t("file.txt");
std::stringstream file;
file << t.rdbuf();
std::string filestr = file.str();

std::ifstream t2("regex.txt");
std::stringstream filepathregex;
filepathregex << t2.rdbuf();
std::string regexstr = filepathregex.str();

const std::regex regex(regexstr);
std::regex_match(filestr.begin(), filestr.end(), regex);
}

I attached the tarball with the files to reproduce the issue.


The content triggering the issue was originated by the testsuite dump of
zim-tools
https://launchpad.net/ubuntu/+source/zim-tools/3.2.0-1build1

Reply via email to