[Bug libstdc++/85824] regex constructor crashes under UTF-8 locale on Solaris-sparc when parsing a simple character class

wanyingloo at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu May 17 20:33:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85824

--- Comment #1 from Wanying Luo <wanyingloo at gmail dot com> ---
Here's GDB backtrace at the time of crash.


#0  0xf56fe7a0 in __lwp_sigqueue () from /lib/libc.so.1
#1  0xf56a1e90 in raise () from /lib/libc.so.1
#2  0xf567a274 in abort () from /lib/libc.so.1
#3  0xff2f2d70 in __gnu_cxx::__verbose_terminate_handler ()
    at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95
#4  0xff2ef844 in __cxxabiv1::__terminate (handler=0xff2f2bac
<__gnu_cxx::__verbose_terminate_handler()>)
    at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:47
#5  0xff2ef8e8 in std::terminate () at
../../../../libstdc++-v3/libsupc++/eh_terminate.cc:57
#6  0xff2efc68 in __cxxabiv1::__cxa_rethrow () at
../../../../libstdc++-v3/libsupc++/eh_throw.cc:125
#7  0xff29c974 in std::collate<char>::do_transform (this=0xff34d9f8 <(anonymous
namespace)::collate_c>, 
    __lo=0x4fb3c "\200", __hi=0x4fb3d "")
    at
/tmp/wluo/gcc-4.9.2/build/sparc-sun-solaris2.11/libstdc++-v3/include/bits/locale_classes.tcc:245
#8  0xff29c25c in std::collate<char>::transform (this=0xff34d9f8 <(anonymous
namespace)::collate_c>, 
    __lo=0x4fb3c "\200", __hi=0x4fb3d "")
    at
/tmp/wluo/gcc-4.9.2/build/sparc-sun-solaris2.11/libstdc++-v3/include/bits/locale_classes.h:662
#9  0x0002ead4 in std::string std::regex_traits<char>::transform<char*>(char*,
char*) const ()
#10 0x0002c634 in std::string
std::regex_traits<char>::transform_primary<char*>(char*, char*) const ()
#11 0x000275f8 in std::__detail::_BracketMatcher<std::regex_traits<char>,
false, false>::_M_apply(char, std::integral_constant<bool, false>) const ()
#12 0x00022bb4 in std::__detail::_BracketMatcher<std::regex_traits<char>,
false, false>::_M_make_cache(std::integral_constant<bool, true>) ()
#13 0x0001ed70 in std::__detail::_BracketMatcher<std::regex_traits<char>,
false, false>::_M_ready() ()
#14 0x0001f958 in void std::__detail::_Compiler<std::regex_traits<char>
>::_M_insert_bracket_matcher<false, false>(bool) ()
#15 0x0001c630 in std::__detail::_Compiler<std::regex_traits<char>
>::_M_bracket_expression() ()
#16 0x000192e8 in std::__detail::_Compiler<std::regex_traits<char> >::_M_atom()
()
#17 0x00017910 in std::__detail::_Compiler<std::regex_traits<char> >::_M_term()
()
#18 0x00015868 in std::__detail::_Compiler<std::regex_traits<char>
>::_M_alternative() ()
#19 0x000141dc in std::__detail::_Compiler<std::regex_traits<char>
>::_M_disjunction() ()
#20 0x0001381c in std::__detail::_Compiler<std::regex_traits<char>
>::_Compiler(char const*, char const*, std::regex_traits<char> const&,
std::regex_constants::syntax_option_type) ()
#21 0x00013340 in std::shared_ptr<std::__detail::_NFA<std::regex_traits<char> >
> std::__detail::__compile_nfa<std::regex_traits<char>
>(std::regex_traits<char>::char_type const*, std::regex_traits<char>::char_type
const*, std::regex_traits<char> const&,
std::regex_constants::syntax_option_type) ()
#22 0x0001307c in std::basic_regex<char, std::regex_traits<char>
>::basic_regex<char const*>(char const*, char const*,
std::regex_constants::syntax_option_type) ()
#23 0x00012d84 in std::basic_regex<char, std::regex_traits<char>
>::basic_regex(char const*, std::regex_constants::syntax_option_type) ()
#24 0x000120d0 in main ()


More information about the Gcc-bugs mailing list