Hi, the header file <bits/regex.h> is missing return statement in the implementation of basic_regex::assign(basic_regex&&). This is about line 619. The minimal example to reproduce this bug is the following:
#include <regex> int main() { std::regex re; re.assign(std::regex("blabla")); return EXIT_SUCCESS; } When compiled with clang and run it produces SIGILL: ptomulik@tea:$ clang++ -std=c++11 -g -O0 -o test test.cpp ptomulik@tea:$ ./test I attach patch created with git against the "gcc-4_9_2-release" tag. Best regards. -- Paweł Tomulik, tel. (22) 234 7925 Instytut Techniki Lotniczej i Mechaniki Stosowanej Politechnika Warszawska
diff --git a/libstdc++-v3/include/bits/regex.h b/libstdc++-v3/include/bits/regex.h index fe10ceb..af5a414 100644 --- a/libstdc++-v3/include/bits/regex.h +++ b/libstdc++-v3/include/bits/regex.h @@ -623,6 +623,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _M_original_str = std::move(__rhs._M_original_str); __rhs._M_automaton.reset(); this->imbue(__rhs.getloc()); + return *this; } /**