// { dg-do run { target c++11 } } // { dg-timeout-factor 2 } #include #include #include void test01() { const std::string s(1ul, '\0'); std::regex re(s); VERIFY( std::regex_match(s, re) ); // PR libstdc++/84110 #if __cpp_exceptions using namespace std::regex_constants; // See https://gcc.gnu.org/pipermail/gcc-patches/2021-October/582486.html using std::regex_constants::extended; for (auto syn : {basic, extended, awk, grep, egrep}) { try { std::regex{s, syn}; // '\0' is not valid for other grammars VERIFY( false ); } catch (const std::regex_error&) { } } #endif } void test02() { const std::string s("uh-\0h", 5); std::regex re(s); VERIFY( std::regex_match(s, re) ); } int main() { test01(); test02(); }