Opened 14 years ago

Closed 13 years ago

#2436 closed Bugs (fixed)

[spirit2] segfault upon grammar instantiation

Reported by: vallentin@… Owned by: Joel de Guzman
Milestone: Boost 1.37.0 Component: spirit
Version: Boost Development Trunk Severity: Showstopper
Keywords: Cc:

Description

I recently switched from g++ 4.0 to g++ 4.2 and now get this warning. I am using the 1.37 beta.

***/boost-1_37/boost/spirit/home/support/nonterminal/detail/nonterminal_fcall.hpp:53: warning: missing braces around initializer for 'boost::spirit::parameterized_nonterminal<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void ()(std::basic_string<char, std::char_traits<char>, std::allocator<char> >), vast::bro::bro_white_space<__gnu_cxx::__normal_iterator<const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::fusion::unused_type>, boost::fusion::vector<boost::phoenix::actor<boost::spirit::local_var<0> >, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> >'

Later on, my application segfaults. Here is the stack trace:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: 13 at address: 0x00000000
0x8fe18b42 in __dyld_misaligned_stack_error ()
(gdb) bt
#0  0x8fe18b42 in __dyld_misaligned_stack_error ()
#1  0xbfffdf98 in ?? ()
#2  0x036f2993 in std::_Rb_tree_insert_and_rebalance ()
#3  0x00109c5b in std::_Rb_tree<std::string, std::pair<std::string const, boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t, vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t, vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t, vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t, vast::meta::vm_time_t, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> >, std::_Select1st<std::pair<std::string const, boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t, vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t, vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t, vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t, vast::meta::vm_time_t, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t, vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t, vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t, vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t, vast::meta::vm_time_t, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > > >::_M_insert (this=0xbfffdf34, __x=0x0, __p=0x3802b30, __v=@0xbfffdf94) at /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
#4  0x00109e10 in std::_Rb_tree<std::string, std::pair<std::string const, boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t, vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t, vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t, vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t, vast::meta::vm_time_t, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> >, std::_Select1st<std::pair<std::string const, boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t, vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t, vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t, vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t, vast::meta::vm_time_t, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t, vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t, vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t, vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t, vast::meta::vm_time_t, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > > >::_M_insert_unique (this=0xbfffdf34, __v=@0xbfffdf94) at /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
#5  0x00109e88 in std::map<std::string, boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t, vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t, vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t, vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t, vast::meta::vm_time_t, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, std::less<std::string>, std::allocator<std::pair<std::string const, boost::variant<vast::meta::vm_addr_t, vast::meta::vm_any_t, vast::meta::vm_bool_t, vast::meta::vm_count_t, vast::meta::vm_double_t, vast::meta::vm_interval_t, vast::meta::vm_int_t, vast::meta::vm_file_t, vast::meta::vm_port_t, vast::meta::vm_string_t, vast::meta::vm_subnet_t, vast::meta::vm_time_t, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > > >::insert (this=0xbfffdf34, __x=@0xbfffdf94) at /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
#6  0x0012633a in vast::meta::vast_basic_type::vast_basic_type (this=<incomplete type>) at /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
#7  0x00126e75 in vast::meta::vast_type<__gnu_cxx::__normal_iterator<char const*, std::string> >::vast_type (this=<incomplete type>, sym_type=<incomplete type>) at /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
#8  0x0012849c in vast::meta::vast_grammar<__gnu_cxx::__normal_iterator<char const*, std::string> >::vast_grammar (this=0xbfffe73c, events=@0xbfffe928) at /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/spirit/home/qi/nonterminal/detail/rule.hpp:116
#9  0x00145def in vast::meta::Specification::load (this=<incomplete type>, filename=<incomplete type>) at /opt/local/include/gcc42/c++/bits/stl_algobase.h:401
#10 0x0005d4eb in main (argc=<incomplete type>, argv=<incomplete type>) at /Users/mavam/code/workspace/vast/build/root/include/boost-1_37/boost/thread/detail/thread.hpp:543

Let me know if you need more context from my application, I am not sure where to start from here.

Best regards,

Matthias

Change History (3)

comment:1 by anonymous, 13 years ago

Is this still a problem? If yes, could you please provide a minimal example reproducing this problem? Otherwise it's not possible to fix it.

comment:2 by Joel de Guzman, 13 years ago

Yes, please post a minimal example reproducing this. There's no other way for me to tell.

in reply to:  2 comment:3 by vallentin@…, 13 years ago

Resolution: fixed
Status: newclosed

Replying to djowel:

Yes, please post a minimal example reproducing this. There's no other way for me to tell.

It's actually solved, I am using gcc 4.3 for a while now and the problem doesn't exist anymore.

Note: See TracTickets for help on using tickets.