[LLVMdev] SIGILL in regex::assign()

Paweł Tomulik ptomulik at meil.pw.edu.pl
Thu Feb 12 20:18:51 PST 2015


Hi, I have this simple program:

#include <regex>
int main()
{
  std::regex re;
  re.assign(std::regex("foo")); // SIGILL
  return 0;
}

It runs smoothly if compiled with g++ but raises "illegal instruction"
when compiled with clang++:

g++ -std=c++11 -O0 -g -o test-g++  test.cpp
clang++ -std=c++11 -O0 -g -o test-clang++ test.cpp

ptomulik at barakus:$ ./test-g++
ptomulik at barakus:$ ./test-clang++
Illegal instruction

Note that the following assignment still works:

re.assign(static_cast<std::regex const&>(std::regex("foo")));


I'm working on Debian 8.0, my clang version is:

ptomulik at barakus:$ clang++ --version
Debian clang version 3.5.0-9 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
Target: x86_64-pc-linux-gnu
Thread model: posix


Where should I report the bug?

Regards!

-- 
Pawel Tomulik



More information about the llvm-dev mailing list