2008/11/12 Bernd Roesch:
>
> But in libstdc++v3/src/functexcept.cc
>
>  void
> __throw_logic_error(const char*)
>  { std::abort(); }
>
> this call abort and there is no string print out, because abort get no
> Parameter as far i see.
>
> How can this work ?

It works by calling abort(), as intended.

If you take another look in functexcept.cc you'll see that when
__EXCEPTIONS is defined the following definition is used:

  void
  __throw_logic_error(const char* __s)
  { throw logic_error(_(__s)); }

This allows the library to call __throw_logic_error without caring
whether the target supports exceptions, or whether they have been
disabled with -fno-exceptions.  If exceptions are enabled
__throw_logic_error will throw std::logic_error, otherwise it will
call abort().

It seems that the 68k amigaos port does not support exceptions, or
your GCC was configured without support for exceptions.

Hope that helps,

Jonathan

Reply via email to