This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question about std::terminate() in __cxa_pure_virtual()


On 21 May 2015 at 09:28, Tony Liu wrote:
> Hi,
>
> Currently the implementation of __cxa_pure_vitual() function is:
> extern "C" void
> __cxxabiv1::__cxa_pure_virtual (void)
> {
>    writestr ("pure virtual method called\n");
>    std::terminate ();
> }
>
> However this version will result to quite large code size of user
> programme, if use std::abort() instead of std::terminate(), the code
> size drops significantly: 47080 vs 3056 in my case.
> In the embedded system, the size of memory are quite limited. Would it
> be possible to replace the terminate() by abort(), or replace it just
> in some cases (e.g. -fno-exceptions enabled while building libstdc++
> )?

If you build GCC with --disable-libstdcxx-verbose then the terminate
handler is simply std::abort, are you doing that?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]