Problems with std::use_facet<std::messages<char> > () g++-4.4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I ran into a problem using boost on osx, which only occurs with
g++-4.4 and not earlier versions (I checked with 4.3 and 4.2). The
simple program below crashes immediately, and the backtrace shows some
problem with std::use_facet :

#include <boost/regex.hpp>
#include <string>
#include <locale>

int main(int argc, char **argv)
{
  // still crashes with these lines uncommented
  // const std::locale locale;
  // const std::messages<char>& msgs = std::use_facet<
std::messages<char> >( locale );

  std::string s("(.*)bar|(.*)bah");
  boost::regex re_node(s);
  return 1;
}

which I compile with:

 g++-mp-4.4 -g -o boost_test_regex boost_test_regex.C
-I/opt/local/include/boost -L/opt/local/lib -lboost_regex-mt

and it crashes like this:

$ ./boost_test_regex
terminate called after throwing an instance of 'std::bad_cast'
  what():  std::bad_cast
Abort trap

0x90d90b9e in __kill ()
(gdb) bt
#0  0x90d90b9e in __kill ()
#1  0x90d90b91 in kill$UNIX2003 ()
#2  0x90e07ec2 in raise ()
#3  0x90e1747f in abort ()
#4  0x0026792c in __gnu_cxx::__verbose_terminate_handler ()
#5  0x00265239 in __cxxabiv1::__terminate ()
#6  0x0026527d in std::terminate ()
#7  0x0026539c in __cxa_throw ()
#8  0x001eeb00 in std::__throw_bad_cast ()
#9  0x00370d25 in std::use_facet<std::messages<char> > ()
#10 0x00127c93 in boost::re_detail::basic_regex_implementation<char,
boost::regex_traits<char, boost::cpp_regex_traits<char> >
>::basic_regex_implementation ()
#11 0x001256a6 in boost::basic_regex<char, boost::regex_traits<char,
boost::cpp_regex_traits<char> > >::do_assign ()
#12 0x00001d22 in boost::basic_regex<char, boost::regex_traits<char,
boost::cpp_regex_traits<char> > >::assign ()
#13 0x00001ce7 in boost::basic_regex<char, boost::regex_traits<char,
boost::cpp_regex_traits<char> > >::assign ()
#14 0x00001c5d in boost::basic_regex<char, boost::regex_traits<char,
boost::cpp_regex_traits<char> > >::basic_regex ()
#15 0x00001ab0 in main ()

I am using gcc 4.4 from macports on osx 10.5

$ g++-mp-4.4 -v
Using built-in specs.
Target: i386-apple-darwin9.5.0
Configured with: ../gcc-4.4-20081128/configure --prefix=/opt/local
--enable-languages=c,c++,objc,obj-c++ --libdir=/opt/local/lib/gcc44
--includedir=/opt/local/include/gcc44 --infodir=/opt/local/share/info
--mandir=/opt/local/share/man --with-local-prefix=/opt/local
--with-system-zlib --disable-nls --program-suffix=-mp-4.4
--with-gxx-include-dir=/opt/local/include/gcc44/c++/
--with-gmp=/opt/local --with-mpfr=/opt/local
Thread model: posix
gcc version 4.4.0 20081128 (experimental) (GCC)

Do you have any suggestions on where this is coming from? or a
possible workaround?

thanks,

a

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux