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;
}
/**