Created attachment 23329 [details] Test case Using the regex anchors "^" or "$" cause a segfault. $ /usr/lib/gcc-snapshot/bin/gcc -v Using built-in specs. COLLECT_GCC=/usr/lib/gcc-snapshot/bin/gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc-snapshot/libexec/gcc/x86_64-linux-gnu/4.6.0/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 20101004-0ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-snapshot/README.Bugs --enable-languages=c,ada,c++,fortran,objc,obj-c++ --prefix=/usr/lib/gcc-snapshot --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --disable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --with-plugin-ld=ld.gold --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=yes --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.6.0 20101004 (experimental) [trunk revision 164952] (Ubuntu 20101004-0ubuntu1)
Note, regex is work in progress, I don't know if this is supposed to work or not. Let's ask Jon...
I think that code's meant to support some basic operations, so the fact it crashes is definitely a bug. We access an empty std::stack in _Compiler::_M_alternative, I'll see if I can fix it.
Thanks Jon.
mine
Author: redi Date: Thu Feb 17 01:47:21 2011 New Revision: 170236 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170236 Log: 2011-02-17 Jonathan Wakely <jwakely.gcc@gmail.com> PR libstdc++/47724 * include/bits/regex_compiler.h (_Scanner::_M_advance): Do not treat line anchors as metacharacters. * testsuite/28_regex/basic_regex/ctors/47724.cc: New. Added: trunk/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/47724.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/regex_compiler.h
I've checked in a change which prevents the crash, but only by treating line anchors as non-metacharacters. Unfortunately our regex implementation is incomplete, but this is better than crashing
... so fixed