Change std::regex detection test to detect bug in libstdc++.
libstdc++'s std::regex has (or had) a bug in std::regex::operator=(...) that
caused undefined behaviour. Clang will detect this and compile the function so
that it crashes at runtime. This patch tried to detect that bug during
configuration.
diff --git a/cmake/std_regex.cpp b/cmake/std_regex.cpp
index 2059a9f..696f2a2 100644
--- a/cmake/std_regex.cpp
+++ b/cmake/std_regex.cpp
@@ -2,9 +2,9 @@
#include <string>
int main() {
const std::string str = "test0159";
- const std::regex re(
- "^[a-z]+[0-9]+$",
- std::regex_constants::extended | std::regex_constants::nosubs);
+ std::regex re;
+ re = std::regex("^[a-z]+[0-9]+$",
+ std::regex_constants::extended | std::regex_constants::nosubs);
return std::regex_search(str, re) ? 0 : -1;
}