[LLVMdev] SIGILL in regex::assign()
Paweł Tomulik
ptomulik at meil.pw.edu.pl
Fri Feb 13 06:30:15 PST 2015
W dniu 13.02.2015 o 05:57, Tim Northover pisze:
> Hi Paweł
>
>> Where should I report the bug?
> LLVM appears to be calling this function from libstdc++'s regex.h
> (4.9.2 in my case):
>
> basic_regex& assign(basic_regex&& __rhs)
> {
> _M_flags = __rhs._M_flags;
> _M_original_str = std::move(__rhs._M_original_str);
> __rhs._M_automaton.reset();
> this->imbue(__rhs.getloc());
> }
>
> This is declared to return a basic_regex but doesn't, which LLVM ends
> up emitting an undefined instruction trap for. This is valid because
> the function has undefined behaviour.
>
> So I say libstdc++, unless they've already fixed it.
>
> Cheers.
>
> Tim.
Thanks,
according to https://gcc.gnu.org/ml/gcc-patches/2015-02/msg00854.html
it's fixed in gcc-4.9.3.
--
Paweł Tomulik, tel. (22) 234 7925
Instytut Techniki Lotniczej i Mechaniki Stosowanej
Politechnika Warszawska
More information about the llvm-dev
mailing list