[odb-users] internal compiler error: cult:compiler::context::no_entry

MM finjulhich at gmail.com
Thu Oct 4 13:51:48 EDT 2018


On Thu, 4 Oct 2018 at 07:40, Boris Kolpackov <boris at codesynthesis.com>
wrote:

> MM <finjulhich at gmail.com> writes:
>
> > I have traced where this exception:
> >
> > > terminate called after throwing an instance of
> > > 'cutl::compiler::context::no_entry'
> >
> > is thrown from:
> >
> > cutl/compiler/context.txx from
> >
> > template <typename X> X& context::get (std::string const& key);
>
> Can you send the complete stack trace?


Here is the beautified stack trace with c++filt, all in
/usr/local/libexec/odb/odb.so

   1. std::string& cutl::compiler::context::get<std::string>(char
   const*)+0x102
   2. std::string
   context::indirect_value<std::string>(cutl::compiler::context const&,
   std::string const&)
   3. context::column_type(semantics::data_member&, std::string const&)
   4. object_columns_base::column_type[abi:cxx11]()

   5. terminate called after throwing an instance of
   'usr/local/lib/exec/odb/odb.so(
   relational::sqlite::model::object_columns::type[abi:cxx11](semantics::data_member&))
 cutl::compiler::context::no_entry'

   6. relational::model::object_columns::traverse_column(semantics::data_member&,
   std::string const&, bool)
   7. object_columns_base::traverse_member(semantics::data_member&,
   semantics::type&)
   8. relational::model::object_columns::traverse(semantics::data_member&,
   semantics::type&, std::string const&, std::string const&,
   semantics::class_*)
   9. relational::model::member_create::traverse_container(semantics::data_member&,
   semantics::type&)
   10. object_members_base::member::traverse(semantics::data_member&)
   11. relational::model::class_::traverse(semantics::class_&)
   12.
   cutl::compiler::dispatcher<semantics::node>::dispatch(semantics::node&)
   13.
   cutl::compiler::dispatcher<semantics::edge>::dispatch(semantics::edge&)
   14. object_members_base::traverse_object(semantics::class_&)
   15. relational::model::member_create::traverse_object(semantics::class_&)
   16. object_members_base::traverse(semantics::class_&)
   17. relational::model::class_::traverse(semantics::class_&)
   18.
   cutl::compiler::dispatcher<semantics::node>::dispatch(semantics::node&)



> > key = "compiler-id-type"
> >
> > internal compiler error: Aborted
> >  using nstring = odb::nullable<std::string>;
> >  #pragma db member(prtfelt::strat) virtual(mynamespace::nstring)
> >
> > Is this any indication at all that the data member is missing a id_type
> > pragma?
>
> No, I don't see anything wrong with it. What's strange though is this
> 'compiler' word in the key. Do you have anything (e.g., a class) in your
> source code called 'compiler'?


Really sorry, I copied wrong:

Right before throwing, I added this code:

std::cerr <<"Cannot get key: "<< key<<std::endl;

which produces:

Cannot get key: column-id-type

Thank you very much.
Let me know if a debug build of odb would help much more.

Rds,


More information about the odb-users mailing list